Récemment, j'ai eu une discussion intéressante avec un collègue à propos des tests unitaires. Nous en avons discuté lors de l'entretien de tests unitaires devient moins productif, lors de vos contrats.
Peut-être que quelqu'un peut m'éclairer la manière d'aborder ce problème. Permettez-moi de préciser:
Donc permet de dire qu'il n'y est une classe qui n'a de chouettes calculs. Le contrat est dit qu'il devrait calculer un nombre, ou qu'elle renvoie -1 si elle échoue pour une raison quelconque.
J'ai un contrat de tests qui test. Et dans toutes mes autres tests que je stub cette chouette calculatrice truc.
Alors maintenant, j'ai modifier le contrat, toutes les fois qu'il ne peut pas calculer qu'il va jeter un CannotCalculateException.
Mon contrat tests échouent, et je vais le corriger en conséquence. Mais, tous mes moqué/écrasa les objets continuent d'utiliser l'ancien contrat de règles. Ces tests permettra de réussir, alors qu'ils ne devraient pas!
La question qui se lève, c'est qu'avec cette foi dans l'unité de test, combien de foi peut être placé dans de telles modifications... Les tests unitaires réussir, mais les bugs se produisent lorsque le test de l'application. Les tests à l'aide de cette calculatrice devra être fixé, ce qui coûte du temps et peut même être écrasé/moqué d'un grand nombre de fois...
Comment pensez-vous de cette affaire? Je n'ai jamais pensé thourougly. À mon avis, ces changements pour les tests unitaires, serait acceptable. Si je n'utilise pas de tests unitaires, je voudrais aussi voir de tels bugs surviennent dans la phase de test (par les testeurs). Pourtant, je ne suis pas assez confiant pour signaler ce qu'il en coûtera plus de temps (ou moins).
Toutes les pensées?