我正在尝试验证作为类的参数。被测试的代码很好。该错误正在测试中。
我尝试了两种方法,但都失败了。
这是我的尝试:
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");
}
);
即使它应该失败,也总是通过。回调中的Asserts确实会失败,但是不会将异常传递给外部上下文,因此测试始终会通过。
您能帮我找出我做错了什么吗?
It.Is((ImageFilterOptions p) => p.Width == 256 && p.Height == 256)
。没有通用的Is