以前はこのテストを行っていましたが、問題なくパスしました (3 つのメッセージがすべて処理されると、物語は完了です。
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 を処理する場合、サガ データは以前のハンドラーから保持されません。
持続性に問題がありますか、それともテストの構成が不適切ですか?