首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >doctest可以使用默认参数解析函数吗?

doctest可以使用默认参数解析函数吗?
EN

Stack Overflow用户
提问于 2018-12-25 19:49:11
回答 1查看 106关注 0票数 0

对于我编写的函数,doctest失败。我得到的错误消息是generate_operands/0未定义。我的意图是在文档测试中使用generate_operands/6的默认参数--这可能吗?做我想做的事情是明智的,还是错误是故意的?

该函数如下所示:

代码语言:javascript
复制
@doc """
Generate the operands for arithmetic practice problems.

## Examples
    iex> operands = generate_operands()
    iex> length(operands)
    10
    iex> hd(operands) |> length()
    5
"""
@spec generate_operands(
        integer,
        integer,
        boolean,
        integer,
        boolean,
        SimplePRNG.t()
      ) :: [
        [integer()],
        ...
      ]

def generate_operands(
      num_probs \\ 10,
      num_ops \\ 5,
      equal_num \\ false,
      max_power \\ 5,
      equal_mag \\ false,
      prng \\ SimplePRNGImpl
    )

def generate_operands(num_probs, num_ops, equal_num, max_power, equal_mag, prng) do
  IO.puts("generate_operands()")
end

错误消息为:

代码语言:javascript
复制
== Compilation error in file test/arithmetic_practice_test.exs ==
** (CompileError) (for doctest at) lib/arithmetic_practice.ex:25: undefined function generate_operands/0
    (stdlib) lists.erl:1338: :lists.foreach/2
    (stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
    (elixir) lib/code.ex:767: Code.require_file/2
    (elixir) lib/kernel/parallel_compiler.ex:209: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/6 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-25 21:56:50

您需要使用到generate_operands的带有ModuleName的完整路径。检查下面的代码。

代码语言:javascript
复制
@doc """
Generate the operands for arithmetic practice problems.

## Examples
iex> operands = MyModule.InnerModule.generate_operands()
iex> length(operands)
10
iex> hd(operands) |> length()
5
"""
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53922106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档