我曾经有过这个测试,它通过得很好(一旦处理了所有三个消息,传奇就完成了。
Test.Saga<TestSagaHandler>(sagaId)
.When(x =>
{
x.Handle(new TestSagaStartMessageOne
{
Id = sagaId
});
x.Handle(new TestSagaStartMessageTwo
{
Id = sagaId
});
x.Handle(new TestSagaNonStartingMessage
{
Id = sagaId
});
});
.AssertSagaCompletionIs(true);
我现在想将 TestSagaNonStartingMessage 分解为它自己的处理程序,并执行以下操作:
Test.Saga<TestSagaHandler>(sagaId)
.When(x =>
{
x.Handle(new TestSagaStartMessageOne
{
Id = sagaId
});
x.Handle(new TestSagaStartMessageTwo
{
Id = sagaId
});
});
Test.Saga<TestSagaHandlerSingleMessage>(sagaId)
.When(x =>
x.Handle(new TestSagaNonStartingMessage
{
Id = sagaId
})
)
.AssertSagaCompletionIs(true);
但是,在处理 TestSagaNonStartingMessage 时 - 传奇数据不会从以前的处理程序中保留下来。
我是否有持久性问题,或者测试构建得不好?