在我的项目中,我们经常使用无状态演员。原因是我们想要使用这些演员来发送“即发即弃”的消息。
这为我们提供了一种快速执行异步任务的方法,而无需自己创建和管理未来。
这非常有效,但其中一个问题是测试这些东西真的很难。我想知道如何为此编写测试用例。
一个明显的想法是,在代码执行结束时,我可以sender ! EmptySuccess
,然后测试用例可以使用ask模式来查看它们是否获得了EmptySuccess。
问题是在生产中所有代码都会在actor引用上使用!
,因此我们最终可能会有很多dead letter messages
可能污染我们的日志(因为发件人并不真的等待接收演员的答案。)
编辑:我们现在不想改用期货。原因是这是遗留代码,如果我们不能将我们的未来一直打倒,因为这将意味着很多代码改变。