执行集成测试的最佳方法是什么?

时间:2014-08-15 04:56:23

标签: rebus

有没有让rebus同步发布所有消息,这样我可以在处理完所有消息后断言某些值?

或者进行集成测试的最佳方法是什么:

  1. 发布活动
  2. 由saga处理,发送命令
  3. 处理命令,发布另一个事件
  4. Saga标记为已完成
  5. 另一个事件处理程序更新数据库
  6. 断言或数据库
  7. 由于

    此致

1 个答案:

答案 0 :(得分:1)

为了测试单个saga及其行为,您应该查看我撰写的博文Unit testing sagas with Rebus,这是关于如何使用SagaFixtureFakeBus的示例 - 我认为它支持您提及要测试的所有内容。

如果您对测试更复杂的场景感兴趣,可能涉及其他处理程序和更长的消息对应等,您可能会受益于ManualResetEvent的一些战略性使用 - Rebus有几个集成测试启动总线并且做一些事情,在场景结束时执行resetEvent.Set() - 这样,测试可以在测试运行时执行resetEvent.WaitOne(timeout)阻止,并在测试结束时立即继续。< / p>