クラスであるパラメータを検証しようとしています。テスト中のコードは問題ありません。バグはテスト中です。
私は2つの方法を試しましたが、どちらも失敗しました。
これが私の試みです:
1:
this.MockImageResizeFilter.Verify(m => m.Filter(this.UploadedFileData, new ImageFilterOptions()
{
Width = 256,
Height = 256,
}));
2番目のパラメーターとして渡されたオブジェクトのプロパティが等しい場合でも、これは常に失敗します。最初のパラメータは正常に検証されます。
2:
this.MockImageResizeFilter.Setup(m => m.Filter(It.IsAny<byte[]>(), It.IsAny<ImageFilterOptions>()))
.Callback<byte[], ImageFilterOptions>((data, options) =>
{
Assert.AreEqual(this.UploadedFileData, data, "data");
Assert.AreEqual(filterOptions.Width, options.Width, "Width");
Assert.AreEqual(filterOptions.Height, options.Height, "Height");
}
);
これは、失敗した場合でも常に合格です。コールバックのAssertsは失敗しますが、例外は外部コンテキストに渡されないため、テストは常に合格します。
私が間違っていることを見つけるのを手伝ってくれませんか?
It.Is((ImageFilterOptions p) => p.Width == 256 && p.Height == 256)
。ジェネリックはありませんでしたIs