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



是否可以让rebus同步发布所有消息,以便在处理所有消息后可以断言某些值?

或者做集成测试的最好方法是什么:

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

感谢

要测试单个传奇和它的行为,你应该看看我写的博客文章,用Rebus对传奇进行单元测试,这是一个关于如何使用SagaFixtureFakeBus的例子-我认为它支持你提到的所有你想测试的东西。

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

相关内容

  • 没有找到相关文章

最新更新