Dire que j'ai trois méthodes, très similaires, mais avec différents types d'entrée:les tests unitaires devraient-ils être des tests en boîte noire ou des tests en boîte blanche?
void printLargestNumber(int a, int b) { ... }
void printLargestNumber(double a, double b) { ... }
void printLargestNumber(String numberAsString, String numberAsString) { ... }
Tous trois utilisent la même logique sous-jacente. Par exemple: peut-être la version double
est la seule qui compare les nombres, et les deux autres convertissent simplement leurs entrées en double
.
On pourrait imaginer quelques tests unitaires différents: la première entrée est plus grande, la deuxième est plus grande, les deux entrées sont négatives, etc.
Ma question
Si les trois méthodes ont l'ensemble des des tests (boîte noire puisque nous ne supposons pas la mise en œuvre de base est le même)
ou
Si seulement La version double
sera testée fortement et les deux autres testées légèrement pour vérifier la conversion des paramètres (test en boîte blanche puisque nous savons qu'ils partagent la même implémentation et qu'il a déjà été testé dans les tests double
)?
Hrm ... cela pourrait être une dupe de http://stackoverflow.com/questions/203075/should-i-use-glass-box-testing-when-it-leads-to-fewer-tests –