Erlang Meck:如何只模拟特定的函数子句?

Erlang Meck:如何只模拟特定的函数子句?,erlang,meck,Erlang,Meck,给定一个包含多个子句的函数,我只想模拟一个特定的情况,对于其他可能导致“function_子句”错误的输入,我希望由原始函数处理。这几乎就像是二郎麦克的选择性穿越 您需要使用: 我创建了一个具有如下功能的模块: -module(demo). -export([original/1]). original(1) -> one; original(2) -> two; original(3) -> three. 然后在控制台上 1> meck:new(demo). ok

给定一个包含多个子句的函数,我只想模拟一个特定的情况,对于其他可能导致“function_子句”错误的输入,我希望由原始函数处理。这几乎就像是二郎麦克的选择性穿越

您需要使用: 我创建了一个具有如下功能的模块:

-module(demo).
-export([original/1]).

original(1) -> one;
original(2) -> two;
original(3) -> three.
然后在控制台上

1> meck:new(demo).
ok
2> meck:expect(demo, original,
2>             fun (1) -> not_one
2>               ; (Arg) -> meck:passthrough([Arg])
2>             end).
ok
3> demo:original(1).
not_one
4> demo:original(2).
two
希望这有帮助:)