
Comment configurer RSpec dans un projet
Apprenez à configurer RSpec dans votre projet Ruby étape par étape. Ce guide vous montre comment ajouter la gem, initialiser RSpec et comprendre les fichiers de configuration.
Etape 1 : Déclarer RSpec comme dépendance de test
Comme pour RuboCop, la première étape consiste à ajouter RSpec à notre projet en utilisant Bundler. C'est la méthode standard qui assure que tout le monde dans l'équipe utilise la même version de l'outil de test. Les tests ne sont nécessaires qu'en environnement de développement et de test, jamais en production. Nous allons donc ajouter la gem dans le groupe approprié.
Ouvrez votre `Gemfile` et ajoutez la ligne suivante à l'intérieur du groupe `:development, :test`. Si ce groupe n'existe pas, vous pouvez le créer.
# Gemfile
source 'https://rubygems.org'
# Vos gems de production...
group :development, :test do
gem 'rubocop', require: false
gem 'rspec'
endIl n'est généralement pas nécessaire d'ajouter `require: false` pour RSpec, car son chargement est géré par la commande de test elle-même.
Ensuite, exécutez la commande d'installation depuis votre terminal, à la racine de votre projet, pour que Bundler télécharge et installe RSpec :
bundle installVotre projet connaît maintenant l'existence de RSpec, mais il n'est pas encore configuré pour l'utiliser.
Etape 2 : Initialiser la structure de RSpec dans le projet
Une fois la gem installée, RSpec fournit une commande très pratique pour générer les fichiers de configuration de base. Cette commande va créer la structure de répertoires et les fichiers nécessaires pour commencer à écrire des tests de manière organisée.
Lancez la commande suivante dans votre terminal :
bundle exec rspec --initL'utilisation de `bundle exec` est, encore une fois, cruciale. Elle garantit que vous exécutez la version de RSpec qui est liée à votre projet via le `Gemfile.lock`. Après avoir lancé cette commande, vous remarquerez que plusieurs éléments ont été créés :
- Un répertoire `spec` à la racine de votre projet.
- Un fichier `.rspec` à la racine de votre projet.
- Un fichier `spec/spec_helper.rb`.
C'est une excellente nouvelle ! Votre projet est maintenant structuré et prêt à accueillir vos futurs tests.
A quoi servent ces nouveaux fichiers ?
Vous vous demandez sûrement quel est le rôle de ces fichiers. Comprendre leur fonction est important pour la suite.
Le répertoire `spec` : C'est la maison de tous vos tests. Par convention, tous les fichiers de test (qui se termineront par `_spec.rb`) doivent être placés ici. RSpec scannera automatiquement ce répertoire pour trouver et exécuter les tests.
Le fichier `.rspec` : C'est un fichier de configuration simple pour la ligne de commande. Il vous permet de sauvegarder des options que vous utilisez fréquemment pour ne pas avoir à les retaper. Par défaut, il contient souvent `--color` pour une sortie plus lisible et `--require spec_helper` pour charger le fichier d'aide avant chaque test.
Le fichier `spec/spec_helper.rb` : C'est le fichier de configuration principal de RSpec. C'est ici que vous pouvez définir des configurations plus avancées, charger des fichiers d'aide, et, surtout, c'est ici que vous direz à RSpec comment charger le code de votre application pour que vos tests puissent y accéder. Pour l'instant, nous pouvons le laisser tel quel.
Etape 3 : Lancer la suite de tests (vide) pour vérifier l'installation
Maintenant que tout est en place, nous pouvons lancer RSpec pour la première fois. Même si nous n'avons encore écrit aucun test, cette étape est essentielle pour valider que la configuration est correcte.
Exécutez la commande suivante :
bundle exec rspecLe résultat devrait ressembler à ceci :
No examples found.
Finished in 0.000... seconds (files took ... seconds to load)
0 examples, 0 failuresCe message, "0 examples, 0 failures", peut sembler décevant, mais c'est en réalité un grand succès. Il signifie que RSpec s'est lancé correctement, n'a trouvé aucun test (ce qui est normal), et n'a rencontré aucune erreur de configuration. Votre environnement de test est maintenant opérationnel. Nous sommes prêts à écrire notre tout premier test !