Nservicebus Nsb:调用ReplyToOriginator的单元测试Saga处理程序
我正在为我所有的Saga处理程序编写简单的单元测试,基本上就是确保消息被捕获/处理 然而,其中一个Saga处理程序调用ReplyToOriginator,现在它抛出了一个异常,因为测试上下文没有被识别为有效的发起者 更具体地说,我的相关代码如下所示:Nservicebus Nsb:调用ReplyToOriginator的单元测试Saga处理程序,nservicebus,Nservicebus,我正在为我所有的Saga处理程序编写简单的单元测试,基本上就是确保消息被捕获/处理 然而,其中一个Saga处理程序调用ReplyToOriginator,现在它抛出了一个异常,因为测试上下文没有被识别为有效的发起者 更具体地说,我的相关代码如下所示: [TestInitialize] public void Initialize() { _context = new TestableMessageHandlerContext(); _pro
[TestInitialize]
public void Initialize()
{
_context = new TestableMessageHandlerContext();
_process = new ActionProcess() { Data = new ActionProcess.ActionSagaData() };
}
[TestMethod]
public async Task ActionProcess_ActionSentHandler_ShouldHandleMessage()
{
// Arrange
var cmd = new ActionSent();
// Act
await _process.Handle(cmd, _context);
// Assert
}
public async Task Handle(ActionSent message, IMessageHandlerContext context)
{
var actionProcessCompletedReply = new ActionProcessCompleted()
await ReplyToOriginator(context, actionProcessCompletedReply);
}
测试失败,以下异常被忽略:
System.Exception:实体.Originator不能为空。可能发送方是仅发送的端点
有人能就如何解决这个问题提供一些建议吗?我是否正在以不合适的方式测试Saga处理程序?
Saga.ReplyToOriginator
希望从收到的原始消息中设置originator。由于这是一个测试,发起者不是自动设置的,您必须通过分配\u process.Data.originator
一些任意值来手动设置它