我有一个处理程序,当它处理某个事件时,它会发送一个请求,并且根据回复,它可能会发布一个警报。我正在尝试使用 NServiceBus 测试框架对此进行测试,但不太明白如何假装总线正在回复。我已经看到了如何测试发送(使用 Test.Handler(...).ExpectSend...)以及如何在另一个正在执行回复的处理程序中测试回复的示例(使用 Test.Handler(...) .ExpectReply),但没有任何关于将回复存根以测试回复的处理。
这是我的处理程序的 Handle 方法的样子:
public void Handle(SomeEvent @event)
{
bus.Send<SomeRequest>(request => { request.Stuff = @event.Stuff })
.Register<SomeReply>(reply => { if (reply.OhNo) bus.Publish(new SomeAlert("augh!")); });
}
到目前为止,测试是这样的:
Test.Handler(bus => new MyHandler(bus, serviceMock.Object)).
ExpectSend(verifyRequest).
// thought maybe something here like .StubReply(someReply) or something?
ExpectPublish(verifyAlert).
OnMessage(@event, "xyz");
感谢您的任何建议!