首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用meck (Erlang)时,是什么导致了“未模拟”错误?

在使用meck (Erlang)时,是什么导致了“未模拟”错误?
EN

Stack Overflow用户
提问于 2014-01-27 23:40:02
回答 1查看 970关注 0票数 3

我是meck (和Erlang)的新手,我正和meck一起挣扎。我得到了以下错误:

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

在测试开始时,我声明要对模块进行模拟:

代码语言:javascript
复制
meck:new(substats)

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

代码语言:javascript
复制
meck:unload(substats)

在测试接近尾声时,当产生上述错误时,模拟似乎像预期的那样工作。

谢谢,里奇

编辑 at 2?调试get ()行似乎解决了这个问题;至少我不再收到错误。下面是修改后的完整函数:

代码语言:javascript
复制
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", []).
EN

回答 1

Stack Overflow用户

发布于 2014-01-28 20:19:30

在模拟模块时,您是否尝试过添加选项pass身

代码语言:javascript
复制
meck:new(substatsDb, [passthrough])

此外,您在meck:expect调用中使用了模块"substatsDb“,但是对于另一个模块(substats)执行meck:new,您应该对相同的模块(新的、预期的和卸载的)执行所有操作。

希望能帮上忙!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21394068

复制
相关文章

相似问题

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