Salut !

Je suis en train de coder des tests unitaires, et j'aurais une petite question.
Un test est destiné à comparer le contenu d'un objet (ses propriétés uniquement) généré à partir d'une ancienne et d'une nouvelle version d'une dll. Pour l'instant, je faisais une série de if, et je remplissais une liste de string du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
List<string> erreur = new List<string>();
if(oldObjet.Propriete1 != newObjet.Propriete1)
{
   erreur.Add("Propriete1 a changé");
}
if(oldObjet.Propriete2 != newObjet.Propriete2)
{
   erreur.Add("Propriete2 a changé");
}
...
if(erreur.Count > 0)
{
   string message = "";
   foreach(string str in erreur)
   {
      message += str + Environnement.Newline;
   }
   throw new Exception("message")
}
Je trouve que ce n'est pas très propre de procéder ainsi. J'aimerais entre autre qu'à chaque test d'une propriété, je puisse faire un throw d'une exception typée de mon cru pour pouvoir emettre au final un message formatté. Je pourrais donc par exemple faire un throw et intercepter l'exception pour la mettre dans une liste d'exceptions. Je me retrouverais ainsi avec un code similaire à celui-ci, en remplaçant "erreur.Add("...")" par un truc du genre "throw new MonException("...")". Le problème, c'est que si je fais un throw à la suite d'un if, le reste du code n'est pas évalué et donc le test sort au premier problème sans tester les autres propriétés, chose que je ne veux pas.

Quelqu'un aurait-il une solution miracle à ma question ? Je peux aussi être plus flou si vous voulez