как вы это делаете?
это я знаю. Но, как-то всегда eunit использовал с каким-то API модулей. А здесь, получается, тупо стартовать приложение и слать сообщения в handle_info, чтобы потом.... собственно, что?
иными словами, что-то вроде: -module(blah-blah_controller_tests). -include_lib("eunit/include/eunit.hrl"). blah_state_test_() -> {setup, fun start/0, fun stop/1, fun test_foo/0}. start() -> {ok, _} = application:ensure_all_started(blah-blah_app). stop() -> application:stop(blah-blah_app). test_foo() -> {noreply, #state{is_subscribed = IsSubscribed}} = gen_server:cast(blah-blah_controller, {subscribe, topic_name}), ?assert(IsSubscribed == true).
К сожалению на cast ответы не приходят. Можешь в модуль смотреть через sys:get_state, но лучше сделать handle_call(info) или типа того
что мешает тебе тестировать код генсервера модульными тестами внутри генсервера?
Обсуждают сегодня