Assertion : double vérification

Assertion : double vérification - Divers - Programmation

Marsh Posté le 11-08-2007 à 18:00:20    

Bonjour,  
 
je me pose une question sur l'assertion : lorsque l'on a une méthode d'un objet qui fait, par exemple, l'ajout d'un membre dans une collection :

Code :
  1. public void addMember (Object member) {
  2.   int oldCount = getCount ();
  3.   // On rajoute l'objet à la collection interne
  4.   ...
  5.   assert collection.getObject(member) != null;
  6.   assert collection.getObject(member).id == member.id;
  7. }
  8. public Member getMember (int id) {
  9.   return collection.getObjectById(id);
  10. }


 
et que maintenant on a une autre classe qui va utiliser cette méthode :

Code :
  1. ...
  2. monAutreObjet.add(unMembre);
  3. assert monAutreObjet.getMember (unMembre.id) != null;
  4. assert monAutreObjet.getMember (unMembre.id).id == unMembre.id;
  5. ...


 
(on pourrait tout aussi bien vérifier le nombre d'éléments)
 
vaut-il mieux faire :
- les tests d'assertion dans la classe qui s'occupe de la collection
- les tests d'assertion dans la classe qui appel l'objet utilisant la collection
- les tests d'assertion dans les deux
?
 
(sachant que y'a sans doute aussi des test d'assertion dans la collection elle même)
 
et si pour compliqué un peu plus, disons que maintenant la classe qui utilise la collection (la première) peut venir d'un utilisateur, et que seul la classe utilisatrice de cette classe "externe" est sur (cad faisant partie du framework ou de la distribution ou ce que vous voulez). Est-ce que ça change la réponse à la précédente question ?
 
Merci

Reply

Marsh Posté le 11-08-2007 à 18:00:20   

Reply

Marsh Posté le 13-08-2007 à 11:10:14    

:bounce:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed