gpt4 book ai didi

erlang - 使用 meck (Erlang) 时导致 "not mocked"错误的原因是什么?

转载 作者:行者123 更新时间:2023-12-05 05:27:13 27 4
gpt4 key购买 nike

我是一个 meck(和 Erlang)新手,我在 meck 上遇到了一些困难。我收到以下错误:

=ERROR REPORT==== 27-Jan-2014::16:20:05 ===
Error in process <0.1825.0> with exit value: {{not_mocked,substatsDb},
[{meck_proc,gen_server,3,[{file,"src/meck_proc.erl"},{line,443}]},{meck_code_gen,exec,4,
[{file,"src/meck_code_gen.erl"},{line,147}]},{substats,loop,1,
[{file,"/Users/uyounri/gitsandbox/subpub/src/su...

在测试开始时,我声明要模拟的模块:

meck:new(substats)

在测试的最后,我做的最后一件事是卸载被模拟的模块:

meck:unload(substats)

模拟似乎按预期工作,直到测试结束时产生上述错误。

谢谢,丰富

编辑添加 2 ?debugFmt() 行似乎解决了问题;至少我不再收到错误。这是修改后的完整函数:

stop(_) ->
meck:expect(substatsDb, stop, 1, fun(dbconn) -> ok end),
substats:stop(),
%% Note: this and the next ?debugFmt() calls prevent a meck
%% exit error. They both have to be present to prevent the error
?debugFmt("stop:~n", []),
meck:unload(substatsDb),
?debugFmt("stop: exit~n", []).

最佳答案

您是否尝试过在模拟模块时添加选项passthrough

meck:new(substatsDb, [passthrough])

此外,您在 meck:expect 调用中使用了模块“substatsDb”,但是为另一个模块(substats)执行 meck:new,您应该为相同的模块(new、expect 和 unload)执行所有操作

希望对您有所帮助!

关于erlang - 使用 meck (Erlang) 时导致 "not mocked"错误的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21394068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com