Эрланг Мек: Как можно издеваться только над определенным предложением функции?

Дав функцию с несколькими предложениями, я бы хотел смоделировать только конкретный случай, и для каждого другого ввода, который в противном случае вызвал бы ошибку 'function_clause', я бы хотел, чтобы он обрабатывался исходной функцией. Это почти как выборочное прохождение в эрланг-мекке.

1 ответ

Решение

Вам нужно использовать meck:passthrough/1 Я создал модуль с такой функцией:

-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

Надеюсь это поможет:)

Другие вопросы по тегам