Oui, nous l'appelons toujours un test unitaire si la fonction appelle d'autres fonctions.
Les tests unitaires devraient tester le comportement public d'une classe et non les implémentations privées. Comme suggéré par ce test de Google sur l'article de toilette .
Si vous suivez les règles du Clean Code, vos fonctions ne devraient pas dépasser 4 lignes de code. Cela rend impossible de ne pas tester une autre fonction privée avec vos tests unitaires.
Pourquoi ne devriez-vous pas tester séparément la plupart des fonctions privées? Parce que refactoring vous obligerait à continuer de mettre à jour tous vos tests unitaires d'implémentation. Cela deviendra frustrant lorsque vous en aurez beaucoup, alors que le comportement du public ne devrait pas changer pendant la refactorisation et donc le test ne devrait pas avoir besoin de mise à jour. Vous devriez pouvoir tester des soldats privés avec leur parent public. Parfois, il peut être utile de tester des cours privés complexes, mais vous vous demandez s'ils devraient être une classe distincte par eux-mêmes?
Test d'intégration :
Maintenant, si la fonction fait partie d'une autre classe, c'est différent. Nous l'appellerions alors test de composants ou test d'intégration. Vous intégrez plusieurs classes et exécutez un test contre elles. La fonction B dépendrait de la fonction C. Pour pouvoir tester la fonction B, vous pouvez utiliser l' injection de dépendance pour isoler la fonction que vous testez, ce serait à nouveau un test unitaire.
Niels van Reijmersdal
la source