J'ai récemment tenté d'utiliser la méthode Assert.Equals () lors de l'écriture d'un nouveau test NUnit. Lors de l'exécution cette méthode jette un AssertionException
énoncé que
Assert.Equals should not be used for Assertions.
c'est un peu déroutant à première vue. Que se passe t-il ici?
132
Réponses:
Assert
est une classe statique héritant de System.Object, comme toutes les classes le font implicitement en C #. System.Object implémente la méthode suivante:Les méthodes sur Assert qui sont destinées à la comparaison d'égalité sont les
Assert.AreEqual()
méthodes. Par conséquent, appeler laObject.Equals()
méthode via la classe Assert dans un test unitaire est certainement une erreur. Afin d'éviter cette erreur et d'éviter toute confusion, les développeurs de NUnit ont intentionnellement cachéObject.Equals
dans la classe Assert avec une implémentation qui lève une exception. Voici l'implémentation:Bien sûr, le message d'exception lui-même est déroutant, mais au moins il vous permet de savoir que vous avez fait quelque chose de mal.
la source
tldr;
ne pas:
la source