Estou tentando verificar um parâmetro que é uma classe. O código que está sendo testado está bom. O bug está em teste.
Tentei dois métodos, mas ambos falharam.
Aqui estão minhas tentativas:
1:
this.MockImageResizeFilter.Verify(m => m.Filter(this.UploadedFileData, new ImageFilterOptions()
{
Width = 256,
Height = 256,
}));
Isso sempre falha, embora um objeto passado como o segundo parâmetro tenha propriedades iguais. O primeiro parâmetro é verificado corretamente.
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");
}
);
Isso sempre passa, mesmo quando deveria falhar. Os Asserts no retorno de chamada falham, mas a exceção não é passada para o contexto externo e, portanto, o teste sempre passa.
Você pode me ajudar a descobrir o que estou fazendo de errado?
fonte
It.Is((ImageFilterOptions p) => p.Width == 256 && p.Height == 256)
. Não havia genéricoIs