我想在不同的ExUnit测试文件中使用meck。
例如,
x_test.exs
def setup do
:meck.new(Hoge, [:passthrough])
on_exit(fn -> :meck.unload end)
:ok
end
def teardown do
:meck.unload
end
test "foo" do
:meck.expect(Hoge, :foo, fn -> 1 end)
assert Hoge.foo == 1
endy_test.exs
def setup do
:meck.new(Hoge, [:passthrough])
on_exit(fn -> :meck.unload end)
:ok
end
def teardown do
:meck.unload
end
test "foo" do
:meck.expect(Hoge, :foo, fn -> 2 end)
assert Hoge.foo == 2
end有时,x_test.exs是失败的,但有时,x_test.exs是成功的……(y_test.exs相同)
我可以使用mock在另一个测试文件中使用相同的函数吗?
发布于 2015-10-22 20:02:16
meck目前编译并加载您根据期望指定的代码。由于只有一个当前版本的代码可以加载到梁中,因此您应该依次执行竞争相同模拟函数的所有测试。
正如ExUnit文档所述,测试用例是并行执行的,您可能必须将应该在单个测试用例(即单个测试模块)中串行执行的所有测试合并在一起。
或者,您可以将可并行执行的测试用例数量设置为1。
ExUnit支持以下选项:
:max_cases -并行运行的最大案例数;默认为:erlang.system_info(:schedulers_online)https://stackoverflow.com/questions/33279963
复制相似问题