[RUBY] [rails] Faisons un test unitaire avec Rspec!

Il existe deux types de tests: les tests unitaires et les tests d'intégration.

-Test de l'unité Un test pour voir s'il fonctionne correctement pour un programme. (Exemple) Pour chaque classe de modèle

-Test d'intégration 1 Test de traitement du lotus. (Exemple) Flux entre la saisie et l'envoi de valeurs à partir du nouvel écran d'enregistrement de l'utilisateur jusqu'à ce que les enregistrements soient ajoutés à la base de données

Introduction de "Rspec" et "factory_bot"

"Rspec" est un jem pour tester, "Factory_bot" crée temporairement des informations lors du test C'est un outil d'aide.

Par conséquent, installons-les tous en même temps.

①jemno Installation

Gemfile


group :development, :test do
  gem 'rspec-rails'
  gem 'factory_bot_rails'
end

Terminal


bundle install

(2) Installez la structure de fichiers / répertoires minimale requise de RSpec dans Rails

Terminal


$ rails g rspec:install
#>      create  .rspec                  #Fichier de configuration RSpec
#>      create  spec                    #Spécifications du magasin
#>      create  spec/spec_helper.rb     #Aide pour la description des spécifications
#>      create  spec/rails_helper.rb    #Description des spécifications spécifiques à Helper for Rails
specフォルダ.png

Ajoutez les fichiers de répertoire requis ici.

③ Créez les fichiers nécessaires Voici un test de validation pour le modèle des utilisateurs J'irai.

◆ Fichier de test Le fichier dans spec / est 1 pour le fichier rb à tester sous app / Organisez une correspondance individuelle.

Les spécifications pour app / models / user.rb Ce sera spec / models / user_spec.rb.

spec-file.png

◆ Fichier de données pour les tests (factory_bot) En plaçant l'usine dans les spécifications / usines Vous pouvez facilement utiliser les données de test.

factories.png

④ Description du fichier

Défini de sorte que l'espace de noms puisse être omis.

spec/rails_helper.rb


RSpec.configure do |config|
+  config.include FactoryGirl::Syntax::Methods
end

.rspec


--format documentation
--require spec_helper

spec/models/user_spec.rb



spec/factories/users.rb


FactoryBot.define do
  factory :user do
    nickname               {"taro"}
    email                  {"[email protected]"}
    password               {"00000000"}
    password_confirmation  {"00000000"}
  end
end

⑤ Exécutez le test

Terminal


bundle exec rspec spec/models/user_spec.rb

Recommended Posts

[rails] Faisons un test unitaire avec Rspec!
[Rails] Test avec RSpec
[Rails5] Rspec -Test d'unité lors de l'imbrication-
[Ruby on Rails] Afficher le test avec RSpec
[Ruby on Rails] Test du contrôleur avec RSpec
[Ruby on Rails] Test de modèle avec RSpec
Testez Nokogiri avec Rspec.
Faites un test unitaire avec Junit.
[RSpec] Utilisons FactoryBot [Rails]
Tester Active Strage avec RSpec
[Rails] Code de test à l'aide de Rspec
Tester le résolveur GraphQL avec rspec
[Rails] À propos du test de réponse Rspec
Copier et coller le test avec RSpec
[RSpec] Test unitaire (avec gem: factory_bot)
Comprendre la couverture du code avec Rspec, le framework de test Ruby on Rails
[Rails] Code de test unitaire pour le modèle utilisateur
Introduire RSpec et écrire le code de test unitaire
Faisons un écran d'erreur avec Rails
Test du tutoriel sur les rails
Principes de base de Rspec [Rails]
[Rails5] Rspec -validation-
[Pour les débutants] Testez l'enregistrement des utilisateurs avec RSpec
Présentation de Rspec avec Ruby on Rails x Docker
Faisons une fonction de recherche avec Rails (ransack)
Les débutants de Rails ont essayé de se lancer avec RSpec
[Rails] Je veux tester avec RSpec. Nous soutenons votre démarche [Procédure d'introduction]
Exécution du code de test RSpec
Comment faire un test unitaire avec JVM sur une source à l'aide de RxAndroid
Exécutez des tests Ruby on Rails RSpec avec des actions GitHub
[Mon mémo] Entendons-nous bien avec Pry / DB avec Rails
[Rails 6] Erreur d'exécution avec $ rails s
[Rails / RSpec] Ecrire un test de modèle (avec Shoulda Matchers / FactoryBot)
Erreur de test Rails5 Rspec ArgumentError: Usine non enregistrée: utilisateur
Manipuler le dispositif avec des rails
Échantillon de bibliothèque de tests unitaires Java
Exécuter les meilleures pratiques RSpec, Brakeman, Rubocop, Rails avec overcommit
Utiliser Webmock avec Rspec
Test unitaire de l'API Web et test d'intégration avec SpringBoot + Junit5, 4 modèles
[Rails] Développement avec MySQL
Tester automatiquement avec la jauge
Test de charge avec JMeter
Rails, procédure d'installation RSpec
Prend en charge la multilinguisme avec Rails!
J'ai essayé un test unitaire de l'application Rails en utilisant RSpec et FactoryBot
Traitons le test unitaire comme la respiration (Apex trigger edition)