Tôi đang cố gắng xác minh một tham số là một lớp. Mã đang được kiểm tra là tốt. Lỗi là trong thử nghiệm.
Tôi đã thử hai phương pháp, cả hai đều không thành công.
Đây là những nỗ lực của tôi:
1:
this.MockImageResizeFilter.Verify(m => m.Filter(this.UploadedFileData, new ImageFilterOptions()
{
Width = 256,
Height = 256,
}));
Điều này luôn không thành công, mặc dù một đối tượng được truyền dưới dạng tham số thứ hai có các thuộc tính bằng nhau. Tham số đầu tiên được xác minh là tốt.
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");
}
);
Điều này luôn trôi qua, ngay cả khi nó sẽ thất bại. Asserts trong callback không thành công, nhưng ngoại lệ không được chuyển đến ngữ cảnh bên ngoài và do đó kiểm tra luôn vượt qua.
Bạn có thể giúp tôi tìm ra những gì tôi đang làm sai?
It.Is((ImageFilterOptions p) => p.Width == 256 && p.Height == 256)
. Không có genericIs