[erlang-questions] parametrized modules and unit testing
Vlad Dumitrescu
vladdu55@REDACTED
Mon Feb 22 10:52:27 CET 2010
On Mon, Feb 22, 2010 at 10:28, pietje <pieter.rijken@REDACTED> wrote:
> Suppose I have 2 modules, say ma and mb, and that module ma uses
> (imports) module mb.
> I'm trying to figure out in Erlang how to write unit tests for module
> ma that do not depend on the particular
> implementation of functions in module mb.
Hi,
One simple way is to use conditional compilation; in ma use
-ifdef(TEST).
-include_lib("eunit/include/eunit.hrl").
-define(MB, mock_mb).
-else.
-define(MB, mb).
-endif.
and make all calls to mb via ?MB. (Of course, you'll have to implement
a mock_mb module).
A more advanced way would be to have a central mock server where you
can register a fun for each mocked function (in any module) and use
error_handler:undefined_function to use these registered funs instead
of the real ones. This is quite complex to implement, though.
best regards,
Vlad
More information about the erlang-questions
mailing list