Qu’est-ce que le concombre ?
Le concombre est utilisé pour le développement axé sur le comportement. Cucumber permet aux équipes de développement de logiciels de décrire comment les logiciels doivent se comporter en texte brut. Le texte est rédigé dans un langage spécifique au domaine lisible par l'entreprise et sert de documentation, de tests automatisés et d'aide au développement, le tout dans un seul format.
Le concombre fonctionne avec Rubis sur Rails, Java, .NET, Flex ou applications Web écrites dans n'importe quel langage. Il a été traduit dans plus de 40 langues parlées. Cucumber prend également en charge des tests plus succincts dans des tableaux, à l'instar de ce que fait FIT.
Installez le concombre pour Rails 3 :
Installez Cucumber, Rspec-rails et Capybara Gem
sudo gem installer concombre-rails sudo gem installer database_cleaner sudo gem installer rspec-rails sudo gem installer capybara
-
Cucumber est un framework de développement piloté par le comportement (BDD) particulièrement adapté aux tests d'intégration et fonctionnels.
- RSpec est un framework de développement piloté par le comportement (BDD) pour les tests de bas niveau dans le langage Ruby.
- database_cleaner effectue le nettoyage de la base de données lors des tests
- capybara simulant un navigateur, automatisant un navigateur ou définissant des attentes à l'aide des matchers.
Utilisation de Cucumber pour tester l'application Rails 3 :
1. Créez une nouvelle application Rails magasin
$rails nouveau magasin -d mysql
2. Modifiez le fichier Gemfile
Inclure les gemmes Cucumber dans une application Rails 3
groupe :test, :development do gem 'rspec-rails' gem 'cucumber-rails' gem 'capybara' gem 'database_cleaner' fin 3. installation groupée
4. Installez les fichiers squelettes de concombre sur une application Rails 3.
Les rails $ génèrent du concombre : installer
Le générateur concombre-rails crée les répertoires :
fonctionnalités/step_definitions
fonctionnalités/assistance
Le générateur de concombre-rails crée les fichiers :
config/concombre.yml
fonctionnalités/support/env.rb
lib/tasks/cucumber.rake
script/concombre
5. râteau db: créer 6. rake db: migrer
7. Exécutez les fonctionnalités de Concombre
$rake concombre
Créez des fonctionnalités de concombre :
- Créer une fonctionnalité Cucumber pour les tests d'application RoR 3
$vi fonctionnalités/manage_store.feature
- Cucumber Feature est la spécification de test pour les utilisateurs professionnels écrite en anglais simple avec un format spécifique.
Format des fonctionnalités
Fonctionnalité: ... Dans l'ordre... Un acteur... Devrait... Scénario : ... Étant donné... Et... Quand... ET... Alors... ET...
Implémentez les étapes de test et le code du modèle Ruby on Rails pour Cucumber on Rails :
- Créer des définitions d'étapes pour le concombre
$vi fonctionnalités/step_definitions/order_steps.rb
- Cucumber utilise une expression régulière pour faire correspondre la chaîne et la transmettre aux définitions d'étape
- Exécuter le concombre
$rake concombre
Un exemple pourrait être la capacité à gérer des entreprises :
Fonctionnalité : Gérer les entreprises Afin de garder une trace des entreprises, l'utilisateur doit être capable de gérer les entreprises Scénario : Créer une nouvelle entreprise Étant donné que je suis connecté Quand je crée une nouvelle entreprise nommée Acme Alors je devrais voir qu'une société nommée Acme existe caractéristiques/ entreprises.fonctionnalité pas/ entreprise_steps.rb Étant donné == Configuration Étant donné "Je suis connecté", faites utilisateur = Usine(:utilisateur) visite new_session_path fills_in 'Connexion', :avec => utilisateur.login fills_in 'Mot de passe', :with => user.password clicks_button 'Connexion' fin Étant donné "Je suis connecté", faites utilisateur = Usine(:utilisateur) visite new_session_path fills_in 'Connexion', :avec => utilisateur.login fills_in 'Mot de passe', :with => user.password clicks_button 'Connexion' fin Quand == Changer Lorsque "Je crée une nouvelle société nommée $name", faites |name| visite new_company_path fills_in 'Nom', :with => nom clicks_button 'Créer' fin Alors == Résultat Ensuite, "Je devrais voir qu'une société nommée $name existe" faites |name| réponse.body.should =~ Regexp.new(nom) fin À chaque étape, vous devez exécuter le concombre et vérifier le résultat.