【问题标题】:Mass Transit Test Harness公共交通测试线束
【发布时间】:2018-11-22 13:09:39
【问题描述】:
我一直在使用 InMemoryTestHarness 对一个公共交通项目进行单元测试。
我参考了下面的 github 代码来使用它
ConsumerTest_Specs.cs
谁能解释一下以下属性是什么
对InMemoryTestHarness _harness对象的实际意义。
虽然代码有一个与每个相关联的测试方法,但我希望对它进行更多解释。
谢谢。
【问题讨论】:
标签:
.net
rabbitmq
masstransit
【解决方案1】:
我知道评论有简洁的答案,但是我想我可以通过添加一些附加信息来使其更清楚。
InMemoryTestHarness 代替了单元测试实例的 mMessageBroker,就像 Smart Mock。因此,作为代理,它拥有所有已发布的消息,但也不断跟踪所有传输的消息。
-
发送:直接命令/消息,就像一些 RPC,但使用消息代理作为通道。线束处于活动状态时使用
Send() 方法的所有消息在此处都有一个副本。
-
已发布:类似事件的消息,遵循 PubSub 模式。线束处于活动状态时使用
Published() 方法的所有消息在此处都有一个副本。
-
已使用:线束处于活动状态时已使用的所有消息。这里我们有一个重要的考虑:
只有在 Harness 中注册的消费者才会消费消息,因此您可以控制哪些消费者处于活动状态