次の方法をテストする必要があります。
CreateOutput(IWriter writer)
{
writer.Write(type);
writer.Write(id);
writer.Write(sender);
// many more Write()s...
}
Moq'd を作成しました。メソッドが正しい順序で呼び出されるIWriter
ようにしたいと考えています。Write()
次のテストコードがあります。
var mockWriter = new Mock<IWriter>(MockBehavior.Strict);
var sequence = new MockSequence();
mockWriter.InSequence(sequence).Setup(x => x.Write(expectedType));
mockWriter.InSequence(sequence).Setup(x => x.Write(expectedId));
mockWriter.InSequence(sequence).Setup(x => x.Write(expectedSender));
ただし、 (値を書き込むための) Write()
inへの 2 番目の呼び出しでは、「IWriter.Write() 呼び出しがモック動作 Strict で失敗しました。モックに対するすべての呼び出しには、対応するセットアップが必要です。」というメッセージがスローされます。CreateOutput()
id
MockException
また、決定的な最新のドキュメントや Moq シーケンスの例を見つけるのも難しいと感じています。
何か間違ったことをしているのですか、それとも同じ方法を使用してシーケンスをセットアップできませんか? そうでない場合、使用できる代替手段はありますか (できれば Moq/NUnit を使用)?