如何在channelcase phoenix框架测试中清除邮箱

cro*_*ile 7 elixir phoenix-framework phoenix-channels ex-unit

我正在进行一个接收大量消息的频道测试.我可能会在安装过程中收到一条消息,调整某些状态,然后我想assert(或refute)发送该消息的另一个副本.我想我可以通过在导致触发第二条消息的事件之前清除邮箱来完成此操作.如何清除channelcase邮箱?

编辑,我已经通过assert_push所有旧邮件完成了我的需求,这些邮件将它们从邮箱中清除.这种方法效果很好但如果有多条消息会非常不方便

Ale*_*rta 2

编辑::lib.flush_receive()完美运行!不幸的是,该模块似乎已被弃用,我找不到替代品。

我一直在寻找解决方案。assert_push对我来说不实用,因为有许多消息已排队并且与我的测试无关。您可以使用:c.flush()它转储所有消息。不幸的是,我还不知道如何防止将其打印到控制台。