Estoy tratando de verificar un parámetro que es una clase. El código que se está probando está bien. El error está en la prueba.
He probado dos métodos, y ambos han fallado.
Aquí están mis intentos:
1:
this.MockImageResizeFilter.Verify(m => m.Filter(this.UploadedFileData, new ImageFilterOptions()
{
Width = 256,
Height = 256,
}));
Esto siempre falla, aunque un objeto pasado como segundo parámetro tenga las mismas propiedades. El primer parámetro está bien verificado.
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");
}
);
Esto siempre pasa, incluso cuando debería fallar. Las afirmaciones en la devolución de llamada fallan, pero la excepción no se pasa al contexto externo y, por lo tanto, la prueba siempre pasa.
¿Puedes ayudarme a encontrar lo que estoy haciendo mal?
It.Is((ImageFilterOptions p) => p.Width == 256 && p.Height == 256)
. No había genéricoIs