Ich versuche, einen Parameter zu überprüfen, der eine Klasse ist. Der getestete Code ist in Ordnung. Der Fehler ist im Test.
Ich habe zwei Methoden ausprobiert, die beide fehlgeschlagen sind.
Hier sind meine Versuche:
1:
this.MockImageResizeFilter.Verify(m => m.Filter(this.UploadedFileData, new ImageFilterOptions()
{
Width = 256,
Height = 256,
}));
Dies schlägt immer fehl, obwohl ein als zweiter Parameter übergebenes Objekt gleiche Eigenschaften hat. Der erste Parameter wird gut verifiziert.
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");
}
);
Dies ist immer erfolgreich, auch wenn es fehlschlagen sollte. Die Asserts im Rückruf schlagen fehl, aber die Ausnahme wird nicht an den äußeren Kontext übergeben, und daher besteht der Test immer.
Können Sie mir helfen, herauszufinden, was ich falsch mache?
quelle
It.Is((ImageFilterOptions p) => p.Width == 256 && p.Height == 256)
. Es gab kein GenerikumIs