Nservicebus Nsb:调用ReplyToOriginator的单元测试Saga处理程序

Nservicebus Nsb:调用ReplyToOriginator的单元测试Saga处理程序,nservicebus,Nservicebus,我正在为我所有的Saga处理程序编写简单的单元测试,基本上就是确保消息被捕获/处理 然而,其中一个Saga处理程序调用ReplyToOriginator,现在它抛出了一个异常,因为测试上下文没有被识别为有效的发起者 更具体地说,我的相关代码如下所示: [TestInitialize] public void Initialize() { _context = new TestableMessageHandlerContext(); _pro

我正在为我所有的Saga处理程序编写简单的单元测试,基本上就是确保消息被捕获/处理

然而,其中一个Saga处理程序调用ReplyToOriginator,现在它抛出了一个异常,因为测试上下文没有被识别为有效的发起者

更具体地说,我的相关代码如下所示:

    [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
一些任意值来手动设置它