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

我正在尝试对Rebus的传奇进行单元测试。一切都进行得很顺利,直到我尝试使用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()。我希望从我的测试中触发定义的“删除”事件处理程序,但事实并非如此。我在这里想念什么。

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

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

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

本文链接:https://www.f2er.com/2346295.html

大家都在问