[RUBY] Les débutants de Rails ont essayé de se lancer avec RSpec

en premier

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.

Qu'est-ce que RSpec en premier lieu?

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.

Préparation de la description RSpec

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.

Paramètres Capybara

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.

Présentation de FactoryBot

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

Les débutants de Rails ont essayé de se lancer avec RSpec
J'ai essayé de démarrer avec Web Assembly
[Note] Comment démarrer avec Rspec
J'ai essayé de démarrer avec Spring Data JPA
Comment démarrer avec Slim
J'ai essayé de démarrer avec Swagger en utilisant Spring Boot
Comment démarrer avec Eclipse Micro Profile
[Rails] Test avec RSpec
[Pour les débutants Rails] Résumé de l'utilisation de RSpec (obtenir un aperçu)
Commencez avec Gradle
J'ai démarré MySQL 5.7 avec docker-compose et j'ai essayé de me connecter
Présentation de «Introduction à la programmation pratique de la rouille» (jour 3)
Tutoriel pour créer un blog avec Rails pour les débutants Partie 1
[1er] RSpec débutant a essayé d'écrire ModelSpec en tant que débutant
[Rails] J'ai essayé de créer une mini application avec FullCalendar
[Rails] J'ai essayé d'implémenter le traitement par lots avec la tâche Rake
Tutoriel pour créer un blog avec Rails pour les débutants Partie 2
Il est maintenant temps de commencer avec l'API Stream
Comment démarrer avec JDBC en utilisant PostgresSQL sur MacOS
Tutoriel pour créer un blog avec Rails pour les débutants Partie 0
Commençons par la programmation parallèle
J'ai essayé d'interagir avec Java
Connectez-vous au serveur Rails avec iPhone
Présentation de React to Rails avec react-rails
Java, des tableaux pour débuter avec les débutants
Mémo à obtenir avec Struts2 + Ajax
[rails] Faisons un test unitaire avec Rspec!
Revue de code facile pour démarrer avec Jenkins / SonarQube: analyse statique
J'ai essayé d'implémenter la fonction de prévisualisation d'image avec Rails / jQuery
Comment obtenir la valeur de boolean avec jQuery sous forme simple de rails
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
J'ai essayé de créer une fonction de groupe (babillard) avec Rails
[Ruby on Rails] Afficher le test avec RSpec
Déployer sur heroku avec Docker (Rails 6, MySQL)
[Ruby on Rails] Test du contrôleur avec RSpec
Présentation de «Introduction à la programmation pratique de Rust» (jour 4) Appel de Rust depuis Ruby
[Rails] Comment obtenir les informations sur l'utilisateur actuellement connecté avec devise
[Ruby on Rails] Test de modèle avec RSpec
Comment créer un environnement Rails 6 avec Docker
Les débutants rapides ont essayé d'implémenter la logique micro-ondes!
[Rails] Je veux tester avec RSpec. Nous soutenons votre démarche [Procédure d'introduction]
Commençons par Java - Créez un environnement de développement ①
J'ai essayé de vérifier AdoptOpenJDK 11 (11.0.2) avec l'image Docker
J'ai essayé de faire une authentification de base avec Java
[Rails] rails nouveau pour créer une base de données avec PostgreSQL
J'ai essayé de gérer la configuration des jambes de force avec Coggle
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
J'ai essayé de gérer les informations de connexion avec JMX
Présentation de Rspec avec Ruby on Rails x Docker
J'ai essayé d'organiser la session en Rails
Obtenir le modèle enfant avec les rails created_at desc scope