112 votes

RSpec : Quelle est la différence entre une fonction et une spécification de requête ?

Quelle est la différence conceptuelle entre Rspec est fonction de spécifications et de la demande des specs?

À partir de la fonction spec docs:

Fonction spécifications des tests de haut niveau destiné à l'exercice des tranches de fonctionnalité à travers une application. Ils devraient conduire à l'application uniquement par l'intermédiaire de son interface externe, généralement des pages web.

Et pour les specs de requête:

Demande de spécifications de fournir une mince enveloppe de Rails pour les tests d'intégration, et sont conçu pour le comportement de lecteur par le biais de la pile complète, y compris le routage (fourni par les Rails) et sans buter (c'est à vous de voir). Avec des specs de requête, vous pouvez:

  • spécifier une seule demande
  • spécifier plusieurs demandes dans plusieurs contrôleurs
  • spécifier plusieurs demandes dans plusieurs sessions

Je sais que la fonction de spécifications utiliser Capybara et de la demande, les specs ne sont pas. Mais à peine les mérites des concepts différents.

147voto

Richard Jordan Points 4067

La différence conceptuelle est que vous êtes habituellement le test d'un article de l'utilisateur et l'interaction doit être pilotée via l'interface utilisateur. C'est là que le Capybara. Une demande spec est encore de tester le comportement de votre application et n'ont pas l'attente de la lisibilité qu'un test d'acceptation aurait. Ainsi, la fonctionnalité est là pour l'amélioration de la syntaxe pour les tests d'acceptation.

Différences techniques comprennent des specs de requête envelopper les Rails de tests d'intégration, alors que la fonction specs ne font pas. Cela veut dire avec des specs de requête, vous pouvez utiliser les méthodes get, post, put, delete et faire valoir à l'encontre de réponse. Avec des specs, vous devez vous rendre toutes les interactions par le biais du navigateur et de l'utilisation de méthodes comme le visiter et de le faire valoir à l'encontre de la page.

Voir ce post ici pour plus d'informations: http://alindeman.github.com/2012/11/11/rspec-rails-and-capybara-2.0-what-you-need-to-know.html

Je recommande aussi la lecture de la feature_spec.fonction dans la rspec-rails de code source sur github, comme c'est lié à cet article, qu'entre ces deux la lecture des articles que vous aurez une bonne poignée sur elle. J'espère que cette aide.

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