我的大部分代码都是这样的
handle_event({publish,Publish_Msg,Publishing_Channel},State)->
Member = pg2:get_members(helpers:get_channel_name(Publishing_Channel)),
case Member of
[M|O]->
[Pid!{send,Publish_Msg}||Pid<-[M|O]];
{error,_}-> lager:info("unavailable")
end,
{ok,State};
为发布事件调用上面的处理程序,它所做的就是向进程id发送消息。
我想要做的是创建一堆模拟Pids,然后让这个事件处理程序将数据发送给那些。并检查数据是否实际收到。有没有办法用EUNIT做到这一点。或者有更好的方法来测试事件处理程序吗?
答案 0 :(得分:1)
使用Common Test(1),它允许您为每个测试用例/组/套件启动gen_event。它功能强大且文档齐全,而且“了解你的一些Erlang”(2)有一篇很好的章节。
(1):http://www.erlang.org/doc/man/common_test.html
(2):http://learnyousomeerlang.com/common-test-for-uncommon-tests