我正在尝试对application:get_env进行调用,但我正在测试一个用两个不同的参数集调用它的函数。
我设置了两个像这样的单独的meck:expect调用,但是当我正在测试的函数试图调用application:get_env(my_app, my_param_one)时,它会失败,并向undefined抛出error:function_clause。
meck:expect(application, get_env, fun(my_app, my_param_one) -> {ok, "my_value_one"} end),
meck:expect(application, get_env, fun(my_app, my_param_two) -> {ok, "my_value_two"} end),我如何处理相同的函数,具有不同的参数值集?
发布于 2018-06-28 15:54:47
第二个meck正在覆盖第一个。
每当在Erlang中通过对不同值集上的模式匹配定义函数时,就会使用分号将每组模式分隔开来,如下所示:
-module(sample).
-export([create_greeting/2]).
create_greeting("Grant", _Greeting) -> io:format("Good day sir!");
create_greeting(Name, Greeting) -> io:format("~s, ~s!", [Greeting, Name]).类似地,在设置meck语句时,只需定义一次函数,但是用分号分隔每一组模式/参数,如下所示:
meck:expect(application, get_env, fun(my_app, my_param_one) -> {ok, "my_value_one"};
(my_app, my_param_two) -> {ok, "my_value_two"}
end),https://stackoverflow.com/questions/51087090
复制相似问题