最佳答案
我试图验证一个类的参数。正在测试的代码没有问题。漏洞在测试中。
我试过两种方法,都失败了。
以下是我的尝试:
1:
this.MockImageResizeFilter.Verify(m => m.Filter(this.UploadedFileData, new ImageFilterOptions()
{
Width = 256,
Height = 256,
}));
即使作为第二个参数传递的对象具有相同的属性,这也总是会失败。验证了第一个参数的正确性。
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");
}
);
这种情况总是会过去的,即使在应该失败的时候也是如此。回调中的断言确实会失败,但是异常不会传递到外部上下文,因此测试总是会通过。
你能帮我找出我做错了什么吗?