Rebus Saga 单元测试 SagaFixture 事件处理程序未触发

Rebus Saga Unit Test SagaFixture Event Handlers Not Firing

我正在尝试使用 Rebus 对 saga 进行单元测试。一切都很顺利,直到我尝试使用 SagaFixture 上的事件来跟踪是否发生了某些动作。

例如,我有这个代码:

        [SetUp]
        public void SetUp()
        {
            _mockSomeService = new Mock<ISomeService>();
            _bus = new FakeBus();

            _saga = new SomeSaga(_bus, _mockSomeService);
        }

            [Test]
            public void SagaWillCompleteIfActionIsNoResponse()
            {
                _mockSomeService.Setup(x => x.GetSomeValue(
                    It.IsAny<int>())).Returns(SomeResonse.NoResponse.ToString());

                using var fixture = SagaFixture.For(() => _saga);
                var eventHandlerCalled = false;
                fixture.Deleted += d => eventHandlerCalled = true;
                fixture.Deliver(_message, deliveryTimeoutSeconds: _deliveryTimeoutSeconds);
                Assert.That(eventHandlerCalled, Is.True);
            }

现在在 Saga 本身中,我发送的消息类型的处理程序中的逻辑只调用 MarkAsComplete()。我希望它能从我的测试中触发我定义的 "Delete" 事件处理程序,但事实并非如此。我在这里错过了什么。

当消息被处理时,您是否验证过您的处理程序代码确实被命中了?

如果是这样,您能否更新问题以将代码包含在您的处理程序中?