[RUBY] [Rails] À propos du test de réponse Rspec

introduction

Aperçu

J'ai essayé de résumer comment écrire du code de test dans Rspec. (Ce sera un test de réponse.)

J'ai appris en me référant aux articles suivants. Créer un modèle pour les paramètres RSpec initiaux dans Rails-Qiita Tutoriel Test Rails (Chapitre 3, Chapitre 4, Chapitre 5) avec RSpec-Qiita

1. Configuration de Rspec

Installer Gem

Ajout de Rspec au gemfile

gemfile


group :development, :test do
  gem 'rspec-rails', '~> 4.0.1'
end

Ensuite, installez Gem.

$ bundle install

Installez rspec dans votre projet avec la commande rails.

$ rails generate rspec:install

Modifier les paramètres rspec

.rspec


--require rails_helper
--format documentation

config/application.rb


module RailsTutorial
  class Application < Rails::Application
    config.load_defaults 5.2
    
    #↓ Ajouter
    #Rails g en spécifiant rspec pour le framework de test~Paramètre pour créer automatiquement un fichier de spécifications lorsque
    config.generators do |g|
      g.test_framework :rspec,
                       helper_specs: false,
                       routing_specs: false,
                       view_specs: false,
                       controller_specs: false
    end
    #↑ Ajouter

  end
end


2. Ecrire un test avec Rspec

Créer un fichier Rspec

Il semble que le code de test s'appelle 'spec'in Rspec. (Le code de test du contrôleur semble être comme "spécification du contrôleur".)

Pour les rails, vous pouvez créer un fichier avec la commande rails generate.

#Pour contrôleur
$ rails g rspec:nom de fichier du contrôleur

#Pour modèle
$ rails g rspec:nom de fichier du modèle

$ rails g rspec:controller StaticPages

Écrire le code de test

spec/requests/static_pages_request_spec.rb


require 'rails_helper'

RSpec.describe 'Access to static_pages', type: :request do

	#Demander l'envoi du test à la page d'accueil
	context 'GET #home' do
		before { get static_pages_home_path }

		#Test de réponse à la demande
		it 'responds successfully' do
			expect(response).to have_http_status 200
		end
	end

end

Je ne suis pas sûr de la description ou du contexte.

Regardons chacun d'eux.

・ Décrivez, tapez

_spec.rb



RSpec.describe 'Access to static_pages', type: :request do

end

↓

RSpec.describe [Nom du test], type: [Type de spécification] do

end

#Type de spécification
#Cette fois, c'est un test de réponse, donc ce sera une requête.
#Autre que ça'system','controller','model','routing','view'Etc.

・ Contexte, avant, il

_spec.rb


RSpec.describe 'Access to static_pages', type: :request do
    context 'GET #home' do
        before { get static_pages_home_path }

        #Test de réponse à la demande
        it 'responds successfully' do
            expect(response).to have_http_status 200
        end
    end
end

  ↓

RSpec.describe 'Access to static_pages', type: :request do
    context ['~dans le cas de'(Avec ton nom préféré)] do
        before [Préparation préalable]

        #Test de réponse à la demande
        it ['Contenu des spécifications'(Avec ton nom préféré)] do
            [Comportement attendu]
        end
    end
end

Si vous lisez dans l'ordre du haut Le code de test y est enfin répertorié. Le code de test est écrit dans une structure qui en imbrique beaucoup décrivent> contexte> ....

spec/requests/static_pages_request_spec.rb


require 'rails_helper'

RSpec.describe 'Access to static_pages', type: :request do

	#Demander l'envoi du test à la page d'accueil
	context 'GET #home' do
		before { get static_pages_home_path }

		#Test de réponse à la demande
		it 'responds successfully' do
			expect(response).to have_http_status 200
		end
	end

end

expect(response).to have_http_status 200

C'est avant et {get static_pages_home_path} Lorsque la méthode GET est utilisée pour communiquer avec le chemin d'accès d'origine, si la réponse renvoyée est 200 (OK), cela signifie que le test est OK.

C'est facile, mais il s'agit d'écrire un test de réponse Rspec dans Rails.

Recommended Posts

[Rails] À propos du test de réponse Rspec
[Rails] Test avec RSpec
[Rails] Code de test à l'aide de Rspec
À propos des rails 6
[Rails5] Rspec -Test d'unité lors de l'imbrication-
À propos du test d'application RSpec (test unitaire)
[rails] Faisons un test unitaire avec Rspec!
À propos du routage des rails
[Ruby on Rails] Afficher le test avec RSpec
Test du tutoriel sur les rails
[Ruby on Rails] Test du contrôleur avec RSpec
[Rails] À propos d'ActiveJob,!
Principes de base de Rspec [Rails]
[Ruby on Rails] Test de modèle avec RSpec
[Rails5] Rspec -validation-
À propos du contrôleur Rails
Présentation de Rspec, un framework de test pour Ruby on Rails
[Rails] À propos des fichiers de migration
[Rails 6] À propos des principaux joyaux
[Rails] À propos du hachage actif
À propos de la spécification de version des rails
Testez Nokogiri avec Rspec.
Rails, procédure d'installation RSpec
[rails] concevoir les valeurs par défaut
rails Paramètres forts
[Débutant] À propos de la session Rails
[Rails] De la préparation du test au test unitaire du modèle [RSpec]
[Rails / RSpec] Ecrire un test de modèle (avec Shoulda Matchers / FactoryBot)
rails test db seulement chute
[RSpec] Utilisons FactoryBot [Rails]
A propos de l'attribution d'un nom aux méthodes de modèle Rails
[Rails] À propos de la structure des dossiers scss
[Challenge CircleCI from 0] Construire un test automatisé (Rails6.0, mysql8.0, Rspec)
À propos de la méthode de raclage des rails Mechanize
[R Spec on Rails] Comment écrire du code de test pour les débutants par les débutants
Comprendre la couverture du code avec Rspec, le framework de test Ruby on Rails
Téléchargement d'images à l'aide de CarrierWave ~ Test Rspec ~
À propos du symbole <%%> dans Rails erb
[Rails] À propos de la mise en œuvre de la fonction similaire
[Rails] À propos de la méthode d'assistance form_with [Basic]
Copier et coller le test avec RSpec
Considération sur les rails et l'architecture propre
[RSpec] Test unitaire (avec gem: factory_bot)