I have the following init method in a gen_fsm callback module (my_fsm):
init(Args) when length(Args) =:= 2 ->
% do work with Args here
{ok, my_state, InitialState}.
There is no other init-method in the callback module.
I want to write a unit test using eunit where I assert that calling gen_fsm with an argument-list that does not contain two elements fails:
start_link_without_args_exits_test() ->
?assertException(exit, _, gen_fsm:start_link(my_fsm, [], [])).
However, when the test is run, eunit skips the test with the message:
undefined
*unexpected termination of test process*
::{function_clause,[{my_fsm,init,[[]]},
{gen_fsm,init_it,6},
{proc_lib,init_p_do_apply,3}]}{proc_lib,init_p_do_apply,3}]}
Why is it that the test does not "catch" this error and reports it as a passed test?