クラスであるパラメータを確認しようとしています。テストされているコードは問題ありません。バグはテスト中です。オブジェクトパラメータでMoq検証
私は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");
}
);
これは、常にそれが失敗した場合でも、渡します。コールバックのAssertは失敗しますが、例外は外部コンテキストに渡されないため、テストは常に成功します。
私が間違っていることを見つけるのを助けることができますか?
スポット、おかげで! – rhughes
私が使用しなければならない構文は 'It.Is((ImageFilterOptions p)=> p.Width == 256 && p.Height == 256)'です。一般的なものはありませんでした – Nemo1024
ジェネリック版は私のために働き、API文書http://www.nudoq.org/#!/Packages/Moq/Moq/It/M/Is(TValue)にありますか?旧バージョンのMoqを使用していますか? –