51 votes

Rails : Comment écrire des tests pour un module ruby ?

J'aimerais savoir comment écrire des tests unitaires pour un module qui est mélangé à quelques classes, mais je ne sais pas vraiment comment m'y prendre :

  1. Dois-je tester les méthodes d'instance en écrivant des tests dans l'un des fichiers de test d'une classe qui les inclut (ce qui ne semble pas correct) ou est-il possible de conserver les tests des méthodes incluses dans un fichier séparé spécifique au module ?

  2. La même question se pose pour les méthodes de la classe.

  3. Dois-je avoir un fichier de test distinct pour chacune des classes du module, comme le font les modèles rails normaux, ou doivent-ils être placés dans le fichier de test général du module, s'il existe ?

3voto

Toby Hede Points 22128

Je testerais généralement le module en l'isolant le plus possible, en testant essentiellement les méthodes, avec juste assez de code, de mocks et de stubs pour le faire fonctionner.

J'aurais alors probablement aussi des tests pour les classes dans lesquelles les modules sont inclus. Je ne testerai peut-être pas toutes les classes, mais j'en testerai suffisamment pour obtenir une bonne couverture et avoir un aperçu des problèmes qui peuvent survenir. Ces tests ne doivent pas nécessairement tester explicitement le module, mais ils doivent certainement tester son utilisation dans des scénarios particuliers.

Chaque série de tests aurait son propre fichier.

0 votes

Merci, je suis d'accord avec ce que vous dites sur le fait de tester la fonctionnalité dans les classes dans lesquelles elle est incluse. Donc, vous auriez un fichier de test pour chaque classe supplémentaire dans le module, ou un fichier de test pour le module dans son ensemble ? Je suppose que je suis plus accroché sur les fichiers de test réels (noms de fichiers, emplacements, etc) que sur ce qu'il faut tester.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X