J'essaie de vérifier un paramètre qui est une classe. Le code testé est correct. Le bogue se trouve dans le test.
J'ai essayé deux méthodes, qui ont toutes deux échoué.
Voici mes tentatives :
1 :
this.MockImageResizeFilter.Verify(m => m.Filter(this.UploadedFileData, new ImageFilterOptions()
{
Width = 256,
Height = 256,
}));
Cette opération échoue toujours, même si un objet passé comme deuxième paramètre a des propriétés identiques. Le premier paramètre est vérifié sans problème.
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");
}
);
Cela passe toujours, même quand cela devrait échouer. Les assertions dans le callback échouent, mais l'exception n'est pas transmise au contexte externe, et donc le test passe toujours.
Pouvez-vous m'aider à trouver ce que je fais mal ?