[erlang-questions] How to meck?

Bohuslav Svancara <>
Wed Jan 11 00:27:35 CET 2012


Thank you, but it does not help.

---------- modified tested module:
-module(meck_module_for_test).
-compile(export_all).
a() -> a.
call_a() -> *meck_module_for_test:a().* % changed line

-------  testing module "meck_test" is the same (se below)

Result:

1> meck_test:test().
Result of call_a: #Fun<meck_test.1.84433456>
Result of a: #Fun<meck_test.1.84433456>
Valid: true
ok


Bob




2012/1/10 Magnus Klaar <>

> Hi!
>
> You can only mock external calls using meck, this means that you must
> prefix the call to a() in meck_module_for_test:call_a/0 with
>  meck_module_for_test: or ?MODULE: to ensure that the call is handled by
> the mocked version of the module. When you make a local call to a function
> in the same module it will always call the function defined in the current
> module version.
>
> MVH Magnus
>
> On Tue, Jan 10, 2012 at 4:47 PM, Bohuslav Svancara <>wrote:
>
>> Hello!
>> I am trying to use meck, but have no luck.
>> Can you help me, please?
>>
>> Erlang version: Erlang 5.9/OTP R15B
>>
>> ---------- tested module:
>> -module(meck_module_for_test).
>> -compile(export_all).
>> a() -> a.
>> call_a() -> a().
>>
>> ------------------------- testing module:
>> -module(meck_test).
>> -compile(export_all).
>> test()->
>>     ok = meck:new(meck_module_for_test,[passthrough]), % Docs says:
>> Retains the original functions, if not mocked by meck.
>>
>>     % Mock "a()" which is called from call_a().
>>     ok = meck:expect(meck_module_for_test, a, 0, fun() ->
>> "result_from_mocked_a" end ),
>>
>>     Result = meck_module_for_test:call_a(),
>>     io:format("Result of call_a: ~p~n",[Result]),
>>
>>     Result_A = meck_module_for_test:a(),
>>     io:format("Result of a: ~p~n",[Result_A]),
>>
>>     Valid = meck:validate(meck_module_for_test),
>>     io:format("Valid: ~p~n",[Valid]),
>>
>>     meck:unload(meck_module_for_test),
>>     ok.
>>
>> --------------------- result of meck_test:test():
>> Result of call_a: a
>> Result of a: #Fun<meck_test.1.126597877>
>> Valid: true
>> ok
>> -----------------------------
>>
>> I believe that call_a() should call a mocked version of a() which should
>> return "result_from_mocked_a".
>> So the result from call_a() shoud be:"result_from_mocked_a"
>> But my results are different.
>>
>> Can you help me, please?
>>
>> Thanks,
>> Bob
>>
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120111/8fd8c0dd/attachment.html>


More information about the erlang-questions mailing list