[erlang-questions] Have been looking for mock and stub
Allen Kim
allen.kim@REDACTED
Wed Mar 2 16:32:13 CET 2011
Thanks for the link. no, I haven't
I wanted to achieve three things from my code; mock, stub, and OTP behaviours (gen_server, gen_event, gen_fsm).
I will test your suggestoin and check if it also covers all of them.
Allen
From: Michal Ptaszek <michal.ptaszek@REDACTED<mailto:michal.ptaszek@REDACTED>>
Date: Wed, 2 Mar 2011 09:20:31 -0600
To: Allen Kim <allen.kim@REDACTED<mailto:allen.kim@REDACTED>>
Cc: "erlang-questions@REDACTED<mailto:erlang-questions@REDACTED>" <erlang-questions@REDACTED<mailto:erlang-questions@REDACTED>>
Subject: Re: [erlang-questions] Have been looking for mock and stub
By any chance, have you tried meck?
https://github.com/esl/meck
<https://github.com/esl/meck>
On Mar 2, 2011, at 4:02 PM, Allen Kim wrote:
I have been looking for mock and stub for eunit testing, but I couldn't find a simple one.
So, I build one by borrowing few codes from open source, and used it in our company for a year and I thought it was good enough.
Here is the code that I use and share, https://github.com/epicadvertising/mock_stub
And the following is the example of usage;
Eshell V5.7.3 (abort with ^G)
{ok, _Pid} = mock:start(my_module).
mock:expect(my_module, foo, [], mock_foo0).
mock:expect(my_module, 'foo/1', mock_other_foo1).
my_module:foo().
mock_foo0
my_module:foo(1).
mock_other_foo1
mock:stop(my_module).
my_module:foo().
foo0
gen_server:start({local, my_reg_gen_server}, my_gen_server, [], []).
gen_server:call(my_reg_gen_server, foo).
call_foo
mock:start(my_gen_server).
mock:expect(my_gen_server, 'handle_call/3', {reply, mock_call_foo, []}).
gen_server:call(my_reg_gen_server, foo).
mock_call_foo
gen_event:start_link({local,my_gen_event_manager}).
gen_event:add_handler(my_gen_event_manager, my_gen_event, []).
gen_event:call(my_gen_event_manager, my_gen_event, foo).
call_foo
mock:start(my_gen_event).
mock:expect(my_gen_event, 'handle_call/2', {ok, mock_call_foo, []}).
gen_event:call(my_gen_event_manager, my_gen_event, foo).
mock_call_foo
I hope this is useful for somebody who is looking for simple mock and stub, and if not please lt me know.
Allen
More information about the erlang-questions
mailing list