25 votes

concombre vs RSpec

Je veux commencer la plongée dans la BDD. Je n'ai jamais utilisé TDD avant et je suis pas sûr si je devrais commencer par apprendre RSpec et ensuite passer à de Concombre ou tout simplement aller directement à l'aide de Concombre.

J'ai lu sur internet à propos de la fois et il me semble que Le concombre peut être un "remplacement" pour RSpec. Suis-je le droit ou qui devrait l'être celui utilisé pour certaines choses, et l'autre pour les autres?

71voto

Kenton Points 791

Concombre et RSpec sont tous les deux utilisés pour la BDD, mais ayant des utilisations différentes.

Pense de Concombre que décrire ce qui se passe à partir de la perspective de l'utilisateur, grâce à l'interaction avec le navigateur web. Vous pouvez donc avoir les étapes de:

Given I'm not logged in
When I login
Then I should be on the user dashboard page

Assez large, mais il y a beaucoup de choses sous le capot, là. Le concombre est bon pour faire en sorte que toutes ces sortes de haut niveau de fonctionnalités et de fonctionnalités sont couverts (par exemple, que lorsque l'utilisateur se connecte, il est redirigé vers la page de droite). Mais ce n'est pas un bon outil pour les tests de code de bas niveau. C'est là que RSpec est en.

Prenons l'exemple de connexion ci-dessus. Votre utilisateur peut se connecter avec une adresse e-mail ou nom d'utilisateur. Vous voulez probablement pour assurer l'adresse e-mail est valide ou que le nom d'utilisateur est d'une certaine longueur...ou que la chose qu'ils utilisent pour la connexion avec est unique. Vous devrez faire cela dans votre modèle Utilisateur, avec une validation.

C'est un exemple trivial, mais c'est le genre de chose que vous auriez test à l'aide de RSpec (dans votre spec/modèles/user_spec.rb fichier). Ce n'est pas quelque chose que vous auriez test à l'aide de Concombre.

Donc la ligne en bas est:

Le concombre de niveau plus élevé des tests de décrire une multitude de fonctionnalités, tel que vu de la perspective de l'utilisateur

RSpec pour des tests plus bas niveau décrivant en détail la manière de vos classes, de méthodes, de modèles, contrôleur, etc devraient fonctionnent réellement.

Ce post est en fait un vraiment bon travail d'expliquer lors de la transition d'un outil à un autre:

http://www.sarahmei.com/blog/2010/05/29/outside-in-bdd/

Je recommande aussi "La RSpec Livre" et "les Rails de Test Ordonnances" pour de bon de ressources sur les outils et les tests en général.

P. S. - ne Pas confondre les choses, mais vous pouvez réellement utiliser RSpec pour le haut niveau des trucs aussi. Mais une partie de cette décision est une question de l'outil que vous préférez, ou peut-être si oui ou non vous travaillez avec un non-technique client qui en bénéficieraient le plus de Concombre est conviviale la syntaxe pour décrire des scénarios.

8voto

Asker Points 434

Oui, concombre et rspec sont tous les deux utilisés pour la BDD.

Personnellement, je préfère le Concombre, mais certaines personnes trouvent qu'il offputting, et préférez leurs tests à être moins bien l'anglais, plus de code. Les deux sont des outils très, bien.

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