Maintenant que j'ai réussi à terminer le didacticiel Rails, j'aimerais vous présenter RSpec. Tout d'abord, je présenterai RSpec lui-même et les cadres qui l'accompagnent.
RSpec est un cadre de test pour le développement axé sur le comportement dans Ruby (extrait de wikipedia)
Le développement axé sur le comportement semble être une méthode de développement dans laquelle le comportement est créé en premier et le code est écrit plus tard. En d'autres termes, vous créez quelque chose comme une spécification qui décrit l'opération à l'avance et implémentez la fonction en fonction de celle-ci. Cela peut être plus comme «écrire une spécification» que «écrire un test».
Capybara
capybara est un framework de test qui a été inclus depuis Rails 5.1. En combinant avec RSpec, il effectuera automatiquement l'opération du navigateur que les gens vérifient manuellement.
FactoryBot
FactoryBot est un joyau qui prend en charge la création de données de test. Il existe une chose similaire appelée Fixture qui est incluse dans la norme Rails pour la création de données de test. L'appareil peut être décrit au format YAML avec une structure similaire à une base de données, mais il n'est pas bon pour un contrôle de données compliqué. D'autre part, FactoryBot facilite le contrôle de l'état et des relations des données en utilisant les rappels ActiveRecord. J'ai interprété que Fixture supprime une scène de la base de données et FactoryBot décrit le mouvement des données. Si vous faites une erreur, veuillez la signaler.
Tout d'abord, ajoutez une gemme appelée rspec-rails au test du Gemfile.
Gemfile.
gem 'rspec-rails'
$ bunble
Une fois l'installation de la gemme terminée, exécutez la commande suivante.
$ rails g rspec:install
Ceci termine l'installation de RSpec lui-même. C'est facile.
Ensuite, nous allons configurer les paramètres pour Capybara à utiliser dans RSpec.
spec/spec/helper.rb
require 'capybara/rspec'
RSpec.configure do |config|
config.before(:each, type: :system) do
config.include Capybara::DSL
config.include FactoryBot::Syntax::Methods
driven_by :selenium_chrome_headless
end
Cette fois, j'utiliserai Headless Chrome comme navigateur avec les spécifications du système, j'ai donc défini selenium_chrome_headless.
Pour installer FactoryBot, décrivez-le dans le Gemfile comme suit.
Gemfile.
gem 'factory_bot_rails'
$ bundle
Ceci termine l'introduction de FactoryBot.
Ensuite, je voudrais parler de la façon d'écrire RSpec, mais cela semble long, donc je le ferai la prochaine fois.
Le contenu est simple dans le premier article, mais j'espère que vous le relirez la prochaine fois.
Recommended Posts