2010-11-02 4 views
0

Est-il possible de tester à l'unité une méthode comme celle-ci?Comment tester unitairement une méthode sans effet secondaire?

void AddNumbers() { 
int i = 2+2; 
} 

En d'autres termes, une méthode sans effets secondaires vraiment. Ou est-ce que des méthodes comme celles-ci sont ignorées et ne sont généralement pas testées? Je suppose que "je" serait normalement fait une variable de niveau de classe, mais alors cela a ses inconvénients (rien de très gros si).

Merci

+4

Votre exemple de fonction n'a aucun effet, donc la seule chose que vous devez tester est de savoir si l'appel lance une exception. Si la fonction n'a pas de valeur de retour et n'a pas d'effet secondaire, alors elle n'a aucun effet (sauf pour consommer des ressources) –

Répondre

4

Il n'y a pas de valeur à une méthode avec ni effets secondaires ni effets primaires, tels que vous avez présenté. L'appeler - à partir du code de test ou du code de production - n'aurait, bien sûr, aucun effet. Donc, il n'y a rien à tester, et aucune raison pour la méthode.

1

Mmm ... cette méthode n'a aucun effet secondaire, mais elle ne fait rien. Une méthode sans effets secondaires, IMO, serait celle qui renvoie une valeur sans changer d'état (classe ou application), et c'est ainsi que l'on peut tester à nouveau les résultats attendus. Pour toute implémentation, la méthode que vous avez écrite est invisible.

Questions connexes