Deve-se substituir um método equals para afirmar a igualdade do objeto em um teste unitário?

Digamos que estamos testando o resultado de um método, afirmando a igualdade de todas as propriedades do objeto de resultado com as propriedades de um objeto de resultado esperado. Devemos implementar o método equals e usar Assert.AreEqual (expectedResult, actualResult) ... Mas igual pode significar algo diferente no código de produção.

Qual é a melhor prática?

Afirmando a igualdade dos objetos através do método overriden equal

ou

Afirmando a igualdade de todas as propriedades

questionAnswers(3)

yourAnswerToTheQuestion