0

我想知道是否有办法通过配置将 NServiceBus 置于将消息写入内存队列而不是物理队列的模式?

我的用例是Integration testing. 理想情况下,我想避免将消息放在物理队列上,以避免集成测试对队列的依赖。我的测试专注于测试将消息放在总线上的代码的逻辑,但如果队列不存在,测试将失败。

现在我在测试中手动创建队列,但想避免这种情况。

每当我这样做时,bus.Send(queueMessageObject);我都希望将消息存储在内存中(或者可能只是被忽略,因为我只是在测试将其放在那里的逻辑)。

在我的unit tests情况下,我可以通过使用 MOQ 模拟 IBus 对象来解决这个问题。但是,在我的集成测试中,我没有模拟总线,而是希望将消息发送到内存端点。我也宁愿不使用与bus.Send()将消息放在总线上不同的 api。

是否有当前/未来的 NServiceBus 配置设置可以做到这一点?

4

2 回答 2

1

我也不想使用与 bus.Send() 不同的 api 将消息放在总线上。

为什么不?拥有使用 NServiceBus 实现的自己的抽象可以让您拥有一堆其他实现和/或在不同总线之间轻松切换。

我们有一个参数化工厂,它返回少数实现之一,消息可以放在日志中,写入文件,通过 wcf 发送等。这让我们可以创建许多不同的单元/集成测试。

于 2013-11-13T22:04:03.390 回答
1

是的,我们计划支持它,请参阅https://github.com/Particular/NServiceBus/issues/1357

于 2013-11-13T23:07:42.380 回答