Recientemente intenté usar el método Assert.Equals () al escribir una nueva prueba de NUnit. Tras la ejecución, este método arroja una AssertionException
afirmación de que
Assert.Equals should not be used for Assertions.
esto es un poco desconcertante a primera vista. ¿Que está pasando aqui?
132
Respuestas:
Assert
es una clase estática que hereda de System.Object, como todas las clases lo hacen implícitamente en C #. System.Object implementa el siguiente método:Los métodos en Assert que están destinados a la comparación de igualdad son los
Assert.AreEqual()
métodos. Por lo tanto, llamar alObject.Equals()
método a través de la clase Assert en una prueba unitaria es ciertamente un error. Para evitar este error y evitar confusiones, los desarrolladores de NUnit se han ocultado intencionalmenteObject.Equals
en la clase Assert con una implementación que arroja una excepción. Aquí está la implementación:Por supuesto, el mensaje de excepción en sí mismo es confuso, pero al menos te permite saber que has hecho algo mal.
fuente
tldr;
no:
fuente