Ich habe kürzlich versucht, die Methode Assert.Equals () zu verwenden, wenn ich einen neuen NUnit-Test schreibe. Bei der Ausführung gibt diese Methode die AssertionException
Aussage aus, dass
Assert.Equals should not be used for Assertions.
dies auf den ersten Blick etwas verwirrend ist. Was ist denn hier los?
132
Antworten:
Assert
ist eine statische Klasse, die von System.Object erbt, wie dies alle Klassen implizit in c # tun. System.Object implementiert die folgende Methode:Die Methoden auf Assert, die für den Gleichheitsvergleich vorgesehen sind, sind die
Assert.AreEqual()
Methoden. Daher ist das Aufrufen derObject.Equals()
Methode über die Assert-Klasse in einem Komponententest sicherlich ein Fehler. Um diesen Fehler zu vermeiden und Verwirrung zu vermeiden, haben die Entwickler von NUnitObject.Equals
die Assert-Klasse absichtlich mit einer Implementierung versteckt, die eine Ausnahme auslöst. Hier ist die Implementierung:Natürlich ist die Ausnahmemeldung selbst verwirrend, aber zumindest lässt sie Sie wissen, dass Sie etwas falsch gemacht haben.
quelle
tldr;
nicht:
quelle