Erlang 如何使用多组参数值调用同一个函数?

Erlang 如何使用多组参数值调用同一个函数?,erlang,eunit,meck,Erlang,Eunit,Meck,我正在尝试调用,但我正在测试一个函数,该函数使用两组不同的参数调用它 我设置了两个独立的meck:expect调用,但当我正在测试的函数尝试调用application:get_env(我的应用程序,我的参数)时,它失败并抛出错误:function_子句 meck:expect(application, get_env, fun(my_app, my_param_one) -> {ok, "my_value_one"} end), meck:expect(application, get_e

我正在尝试调用,但我正在测试一个函数,该函数使用两组不同的参数调用它

我设置了两个独立的
meck:expect
调用,但当我正在测试的函数尝试调用
application:get_env(我的应用程序,我的参数)
时,它失败并抛出
错误:function_子句

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),

我如何才能用不同的参数值集来表示相同的函数?

第二个
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),