単体テストを書いているときに、呼び出しているメソッドが渡したモック オブジェクトを変更しないという問題に遭遇しました。
次のようにモックをセットアップしました。
var mockList = new List<Mock<IDocument>>();
for (int i = 0; i < 4; i++)
{
var mockDocument = new Mock<IDocument>();
mockDocument.Setup(t => t.DocumentNo).Returns(i.ToString());
mockList.Add(mockDocument);
}
mockDocumentRepository.Setup(x => x.GetDocuments(It.IsAny<string>(), It.IsAny<string>()))
.Returns(mockList.Select(m => m.Object).ToList());
実行されたメソッドで、モックされたクラス (t.DocumentName など) の別のプロパティを変更しようとすると、値が残りNull
ます。変更を受け入れるようにそのプロパティを設定する方法はありますか?
これを行っている理由は、ドキュメントのコレクションがメソッド内の別のコレクションによって変更されているかどうかをテストするためです。これを行うためのより良い方法があるかどうかわかりませんか?