首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用多组参数值来检查相同的函数?

如何使用多组参数值来检查相同的函数?
EN

Stack Overflow用户
提问于 2018-06-28 15:54:47
回答 1查看 304关注 0票数 1

我正在尝试对application:get_env进行调用,但我正在测试一个用两个不同的参数集调用它的函数。

我设置了两个像这样的单独的meck:expect调用,但是当我正在测试的函数试图调用application:get_env(my_app, my_param_one)时,它会失败,并向undefined抛出error:function_clause

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

我如何处理相同的函数,具有不同的参数值集?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-28 15:54:47

第二个meck正在覆盖第一个。

每当在Erlang中通过对不同值集上的模式匹配定义函数时,就会使用分号将每组模式分隔开来,如下所示:

代码语言:javascript
复制
-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语句时,只需定义一次函数,但是用分号分隔每一组模式/参数,如下所示:

代码语言:javascript
复制
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),
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51087090

复制
相关文章

相似问题

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