Je vous déconseille vivement d'insérer des test uniquement dans votre application. L'objectif d'un test (unitaire) est de tester la qualité de production du logiciel, et non d'exercer un code de test uniquement.
Si votre code testé uniquement fonctionne, mais que la version de production est cassée, votre test n'a aucune valeur.
Au lieu de cela, vous devriez écrire votre test de telle sorte qu'une seule chose puede se tromper. Ainsi, si le test échoue, vous savez déjà ce qui ne va pas. Ainsi, si vous testez une méthode Equals qui prend en compte deux propriétés, écrivez un ensemble de petits tests qui vérifient ce qui se passe dans toutes les combinaisons possibles des deux propriétés et vérifiez le résultat de la méthode Equals.
Après cela, vous pouvez être sûr que la méthode Equals est correctement implémentée et que vous n'avez pas besoin de la tester ailleurs.
Une autre solution pourrait être d'ajouter une aide au test qui effectue une journalisation supplémentaire. J'aime utiliser des méthodes d'extension pour cela. Par exemple :
public static class TestExtensions
{
public static void ShouldEqual( this YourType subject, YourType other )
{
// Check parameters for null here if needed
if( !subject.Equals( other ) )
{
// custom logging here
Assert.Fail("Objects are not equal"); // test fails
}
}
}