Recentemente, tentei usar o método Assert.Equals () ao escrever um novo teste NUnit. Após a execução, esse método lança uma AssertionException
declaração de que
Assert.Equals should not be used for Assertions.
Isso é um pouco desconcertante à primeira vista. O que está acontecendo aqui?
132
Respostas:
Assert
é uma classe estática herdada de System.Object, como todas as classes implicitamente em C #. System.Object implementa o seguinte método:Os métodos em Assert que se destinam à comparação de igualdade são os
Assert.AreEqual()
métodos. Portanto, chamar oObject.Equals()
método através da classe Assert em um teste de unidade é certamente um erro. Para evitar esse erro e evitar confusões, os desenvolvedores do NUnit ocultaram intencionalmenteObject.Equals
a classe Assert com uma implementação que gera uma exceção. Aqui está a implementação:É claro que a própria mensagem de exceção é confusa, mas pelo menos permite que você saiba que fez algo errado.
fonte
tldr;
não:
fonte