对于我编写的函数,doctest失败。我得到的错误消息是generate_operands/0未定义。我的意图是在文档测试中使用generate_operands/6的默认参数--这可能吗?做我想做的事情是明智的,还是错误是故意的?
该函数如下所示:
@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错误消息为:
== 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 发布于 2018-12-25 21:56:50
您需要使用到generate_operands的带有ModuleName的完整路径。检查下面的代码。
@doc """
Generate the operands for arithmetic practice problems.
## Examples
iex> operands = MyModule.InnerModule.generate_operands()
iex> length(operands)
10
iex> hd(operands) |> length()
5
"""https://stackoverflow.com/questions/53922106
复制相似问题