Mocks de bases de données : plus de problèmes qu’ils n’en valent la peine ?

2024-12-30

S’il est tentant de les utiliser pour leur rapidité et leur simplicité, l’auteur soutient que l’utilisation de mocks de bases de données pour les tests finit par engendrer plus de problèmes qu’elle n’en résout. Un exemple de création d’utilisateur met en évidence les différences entre les mocks et les tests effectués sur une base de données réelle. Les tests sur une base de données réelle révèlent des problèmes potentiels dès le départ, tels que les violations de contraintes uniques, la gestion des valeurs par défaut et les goulots d’étranglement de performance, ce qui permet de gagner du temps de débogage et de réduire les risques de production. À mesure que les applications évoluent et que les schémas changent, les tests sur une base de données réelle gèrent mieux les nouvelles validations, les modifications de type de données et les changements de précision des horodatages, en garantissant que le code est aligné sur la base de données réelle. L’auteur suggère de privilégier les tests sur une base de données réelle pour les couches d’accès aux données, tout en les utilisant au niveau de la couche de service pour mettre en évidence les interactions de la logique métier avec les données. Les couches de contrôleurs, en revanche, peuvent simuler efficacement les appels de service. L’équilibre entre les tests sur une base de données réelle et les mocks est essentiel pour construire des applications robustes.