ฉันกำลังพยายามตรวจสอบพารามิเตอร์ที่เป็นคลาส โค้ดที่กำลังทดสอบนั้นใช้ได้ จุดบกพร่องอยู่ระหว่างการทดสอบ
ฉันได้ลองสองวิธีซึ่งทั้งสองวิธีล้มเหลว
นี่คือความพยายามของฉัน:
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