如何在 Elixir 中测试无限递归任务
How to test an infinite, recursive Task in Elixir
请检查此代码:
defmodule InfinitePollTask do
def poll(opts \ [])
# function body code here
poll(new_opts)
end
end
我想为函数体代码编写单元测试,假设函数体使用 opts
执行一些重要计算并为下一次迭代生成 new_opts
。
我只是将计算拉出到一个单独的函数中 returns new_opts,然后测试它:
defmodule InfinitePollTask do
def poll(opts \ [])
poll(do_poll(opts))
end
def do_poll(opts)
# important computation
end
end
defmodule InfinitePollTaskTest do
use ExUnit.Case
test "some case" do
assert InfinitePollTask.do_poll(some_opts) == some_result_opts
end
end
请检查此代码:
defmodule InfinitePollTask do
def poll(opts \ [])
# function body code here
poll(new_opts)
end
end
我想为函数体代码编写单元测试,假设函数体使用 opts
执行一些重要计算并为下一次迭代生成 new_opts
。
我只是将计算拉出到一个单独的函数中 returns new_opts,然后测试它:
defmodule InfinitePollTask do
def poll(opts \ [])
poll(do_poll(opts))
end
def do_poll(opts)
# important computation
end
end
defmodule InfinitePollTaskTest do
use ExUnit.Case
test "some case" do
assert InfinitePollTask.do_poll(some_opts) == some_result_opts
end
end