首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不同的ExUnit测试文件中使用meck

如何在不同的ExUnit测试文件中使用meck
EN

Stack Overflow用户
提问于 2015-10-22 19:30:20
回答 1查看 322关注 0票数 1

我想在不同的ExUnit测试文件中使用meck

例如,

x_test.exs

代码语言:javascript
复制
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
end

y_test.exs

代码语言:javascript
复制
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在另一个测试文件中使用相同的函数吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-22 20:02:16

meck目前编译并加载您根据期望指定的代码。由于只有一个当前版本的代码可以加载到梁中,因此您应该依次执行竞争相同模拟函数的所有测试。

正如ExUnit文档所述,测试用例是并行执行的,您可能必须将应该在单个测试用例(即单个测试模块)中串行执行的所有测试合并在一起。

或者,您可以将可并行执行的测试用例数量设置为1。

ExUnit支持以下选项:

  • :max_cases -并行运行的最大案例数;默认为:erlang.system_info(:schedulers_online)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33279963

复制
相关文章

相似问题

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