1

我的大部分代码看起来像这样

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 发送一条消息。

我想做的是创建一堆模拟 Pid,然后让这个事件处理程序向它们发送数据。并检查他们是否真的收到了数据。有什么办法可以用 EUNIT 做到这一点。还是有更好的方法来测试事件处理程序?

4

1 回答 1

1

使用 Common Test (1),它可以让您启动每个测试用例/组/套件的 gen_event。它功能强大且文档齐全,《Learn you some Erlang (2)》一书中也有关于它的精彩章节。

(1):http ://www.erlang.org/doc/man/common_test.html

(2): http://learnyousomeerlang.com/common-test-for-uncommon-tests

于 2013-11-28T20:45:15.077 回答