Question

Je commence tout juste à comprendre BDD et RSpec et une chose qui me pose problème, c'est de déterminer à quel point je devrais faire preuve de rigueur dans mes tests.

Je ne comprends tout simplement pas à quel point mes tests doivent être précis pour rester utiles mais pas pour doubler le temps de développement.

Est-ce juste une question de préférence? Ou existe-t-il une norme générale sur ce qui devrait être testé?

Était-ce utile?

La solution

Il y a quelques facteurs à prendre en compte ici.

  1. La couverture des spécifications devrait être maximale pour les fonctionnalités les plus importantes et les objets les plus susceptibles de se détériorer.
  2. Les spécifications doivent exprimer l'intention du développeur. N'écrivez pas de spécifications pour des choses triviales que vous ou une autre personne pourriez changer plus tard.
  3. Tester le comportement et non la mise en oeuvre. Vous devriez pouvoir modifier l'implémentation interne d'une classe et toujours transmettre les spécifications. Cela facilite la refactorisation.
  4. Chaque fois que vous corrigez des bogues, ajoutez des spécifications pour empêcher le bogue de régresser à nouveau.

Je trouve utile de considérer les tests / spécifications comme un filet de sécurité. Je veux qu'une spécification échoue si un autre dev (ou moi-même) casse quelque chose que j'ai passé du temps à faire fonctionner. Je ne veux pas qu'ils passent beaucoup de temps à modifier leurs spécifications pour des choses qui ne comptent pas vraiment. Je ne veux pas non plus les empêcher d'améliorer l'application en raison de spécifications testant des éléments qui n'étaient pas importants pour moi lors de l'écriture du code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top