如何在erlang中测试gen_events?

时间:2013-11-26 06:36:52

标签: unit-testing erlang eunit

我的大部分代码都是这样的

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做到这一点。或者有更好的方法来测试事件处理程序吗?

1 个答案:

答案 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