Différences entre Test et Spec

12

J'ai un problème de concept à ce stade et je ne trouve aucune information sur les différences entre Test (UnitTest, etc.) et Spec (Rspec, etc.).

Pour autant que je sache, les spécifications sont dans les tests d'intégration et le test est dans UnitTest, mais juste cela.

Pouvez-vous expliquer quelles sont les différences?

DFOXpro
la source

Réponses:

12

Regardez le schéma suivant. Il illustre la relation entre le développement piloté par les tests (TDD) et le développement piloté par les tests d'acceptation (ATDD):

Diagramme de développement piloté par les tests d'acceptation

Notez que la boucle intérieure, TDD, est enveloppée par la boucle extérieure, ATDD. Les exigences (illustrées par l'encadré Critères d'acceptation) déterminent la création de tests d'acceptation automatisés, qui à leur tour entraînent la création de tests unitaires pour la mise en œuvre.

En général, RSpec serait utilisé dans les situations où vous souhaitez exprimer les tests d'une manière conviviale pour les analystes commerciaux, à savoir la création de tests d'acceptation automatisés (le cercle de bronzage); tandis que les frameworks de tests unitaires comme nUnit sont plus spécialisés pour le type de tests unitaires écrits du point de vue TDD du développeur au niveau de l'implémentation (le cercle jaune).

Robert Harvey
la source
Un bon exemple est une table de hachage, qui nécessite des tests unitaires détaillés, car elle devrait fonctionner pour toutes les entrées possibles, pas seulement le petit ensemble d'exemples dans les tests d'acceptation. Cependant, le code qui calcule la remise pour un «bon» client est susceptible d'être bien couvert par les tests d'acceptation, il peut donc ne pas avoir besoin de tests unitaires ou de quelques tests.
Ian
3

ok, nous avons des termes différents ici, alors voici ce qui se passe

  • Nous avons des tests unitaires. Les autres niveaux sont les tests d'intégration, les tests de performances, etc.
  • rspec peut être utilisé pour de nombreux niveaux de test ci-dessus, par exemple contre des modèles, des contrôleurs et des vues via les tests de fonctionnalités de Capybara.
  • le mot «spec» vient d'une spécification qui est au cœur d'un test - il spécifie quelque chose.
  • rspec - un framework utilisé pour tester les navigateurs agaist, fréquemment utilisé avec les applications Ruby on Rails.
  • fichiers spec - les fichiers rspec se terminent généralement par _spec.rb et sont fréquemment appelés fichiers spec.
Michael Durrant
la source