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((。我希望这会从我的测试中触发我定义的"删除"事件处理程序,但它没有。我在这里错过了什么。

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

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

相关内容

  • 没有找到相关文章

最新更新