Je suis religieusement TDD. Mes projets ont généralement une couverture de test de 85% ou mieux, avec des cas de test significatifs.
Je fais beaucoup de travail avec HBase , et l'interface client principale, HTable, est une vraie douleur à se moquer. Il me faut 3 ou 4 fois plus de temps pour écrire mes tests unitaires que pour écrire des tests qui utilisent un point de terminaison en direct.
Je sais que, philosophiquement, les tests qui utilisent des simulations devraient avoir la priorité sur les tests qui utilisent un point de terminaison en direct. Mais se moquer de HTable est une douleur sérieuse, et je ne suis pas vraiment sûr qu'il offre beaucoup d'avantages par rapport aux tests contre une instance HBase en direct.
Tous les membres de mon équipe exécutent une instance HBase à nœud unique sur leur poste de travail, et nous avons des instances HBase à nœud unique exécutées sur nos boîtes Jenkins, ce n'est donc pas un problème de disponibilité. Les tests de point de terminaison en direct prennent évidemment plus de temps à exécuter que les tests qui utilisent des simulations, mais cela ne nous intéresse pas vraiment.
En ce moment, j'écris des tests de point de terminaison en direct ET des tests sur maquette pour toutes mes classes. J'adorerais abandonner les moqueries, mais je ne veux pas que la qualité diminue en conséquence.
Qu'en pensez-vous tous?