有没有让rebus同步发布所有消息,这样我可以在处理完所有消息后断言某些值?
或者进行集成测试的最佳方法是什么:
由于
此致
阴
答案 0 :(得分:1)
为了测试单个saga及其行为,您应该查看我撰写的博文Unit testing sagas with Rebus,这是关于如何使用SagaFixture
和FakeBus
的示例 - 我认为它支持您提及要测试的所有内容。
如果您对测试更复杂的场景感兴趣,可能涉及其他处理程序和更长的消息对应等,您可能会受益于ManualResetEvent
的一些战略性使用 - Rebus有几个集成测试启动总线并且做一些事情,在场景结束时执行resetEvent.Set()
- 这样,测试可以在测试运行时执行resetEvent.WaitOne(timeout)
阻止,并在测试结束时立即继续。< / p>