我正在使用Akka和RabbitMQ进行大规模应用。
目前,对于验收和集成测试,我正在模拟通常会从被测模块发送或接收消息的actor。实际上,只需使用完全相同的RabbitMQ队列,然后注入或接收数据,然后进行验证。
这听起来是否适合确保一切都在RabbitMQ中表现出来?
另一方面,我开始使用日志记录队列来测试其他内容。我只是将各种日志消息路由到它,然后读取队列以了解正在发生的事情。例如,如果我想测试某些东西是否在做什么,我只需要一个函数LogThis("Entered: Method Name")
,然后读取放置消息的队列,看它是否发生。
这听起来像个好主意吗?我的想法是即使在单元测试中我也这样做。其他一切都被嘲笑了,但我正在使用该方法验证某些难以测试区域的正确行为。只需阅读日志数据流,看看它是否正在按我的意愿行事。
我接受了这个想法,因为当我听到调试级别的日志文件队列并获得相同的信息(只要我保证我的日志记录是这样)时,它似乎比使用Akka测试工具包遇到各种麻烦要容易得多只准确记录)
答案 0 :(得分:0)
对于rabbitMq,我的建议是使用真正的RabbiMQ:这可以通过使用Vagrant和chef来配置RabbitMq和Vagrant maven插件来在Integration测试之前启动Box并在集成测试的后期停止它:
Vagrant Maven插件:http://nicoulaj.github.io/vagrant-maven-plugin/
Vagrant WebSite:http://www.vagrantup.com/
RabbitMQ的食谱师傅:https://github.com/opscode-cookbooks/rabbitmq
总结一下你必须:
这样你的测试就会被隔离。
希望这个帮助