J'ai 6 mois d'expérience dans le développement de Rails. J'ai créé une application Web qui est actuellement utilisée avec authentification et autorisation et postgresql db.
Je passe à ma deuxième application Rails mais cette fois, après les leçons apprises, j'aimerais la développer en utilisant TDD, car j'ai remarqué qu'il était beaucoup plus facile de la mettre à l'échelle et de corriger les bogues. Il est lent à se développer mais à long terme, il est beaucoup plus facile à gérer.
J'ai entendu parler de Rspec et de concombre mais je suis complètement confus par eux.
Je voudrais savoir quelle est la différence entre RSpec et Cucumber et à quoi ils servent.
Il serait également utile de savoir si, du point de vue d'un débutant (qui est également le seul développeur), si un cadre de test est vraiment nécessaire.
Réponses:
RSpec et Cucumber sont tous deux des frameworks de test. RSpec inclut les tests unitaires traditionnels (ce qui signifie tester une classe ou une partie de l'application indépendamment du reste de l'application. Ainsi, votre modèle fait ce que votre modèle est censé faire, le contrôleur fait ce qu'il est censé faire, etc.).
RSpec et Cucumber sont tous deux utilisés pour les tests d'acceptation (appelés ATDD, BDD, spécification par exemple, etc. en fonction de la personne à qui vous demandez). Ce sont des tests d'intégration basés sur l'analyse de rentabilisation, ce qui signifie qu'ils simulent la façon dont un utilisateur utilise l'application et utilise la pile complète de Rails, de sorte que les problèmes liés à la façon dont les différentes parties de votre application fonctionnent ensemble peuvent être détectés d'une manière que les tests unitaires ne seront pas trouver.
La principale différence entre RSpec et Cucumber réside dans le facteur de lisibilité de l'entreprise. Le principal attrait de Cucumber est que les spécifications (fonctionnalités) sont distinctes du code de test, de sorte que vos propriétaires de produits peuvent fournir ou réviser la spécification sans avoir à fouiller dans le code. Ce sont les fichiers .feature que vous créez dans Cucumber. RSpec a un mécanisme similaire, mais à la place, vous décrivez une étape avec un bloc Description, Contexte ou It qui contient la spécification métier, puis vous disposez immédiatement du code qui exécute cette instruction. Cette approche est un peu plus facile à utiliser pour les développeurs, mais un peu plus difficile pour les non-techniciens.
Lequel utiliser? Si vous êtes le seul développeur et propriétaire du produit, alors je m'en tiendrai à RSpec, je pense que c'est plus facile pour un technicien à comprendre, offre quelques avantages pour garder les choses cadrées et sous contrôle, et vous éviter de jouer avec RegExs pour le test pas. Si vous construisez ceci pour un client et qu'il maîtrise la spécification, utilisez Cucumber pour votre test d'acceptation et utilisez RSpec pour les tests unitaires.
Juste pour démontrer la principale différence entre les deux:
Concombre:
Rspec
Cette série de blogs est excellente pour démarrer avec RSpec.
la source