[RUBY] [Rails] Informationen zum Rspec-Antworttest

Einführung

Überblick

Ich habe versucht zusammenzufassen, wie man Testcode in Rspec schreibt. (Es wird ein Reaktionstest sein.)

Ich habe durch Bezugnahme auf die folgenden Artikel gelernt. Erstellen Sie eine Vorlage für die anfänglichen RSpec-Einstellungen in Rails-Qiita Test Rails Tutorial (Kapitel 3, Kapitel 4, Kapitel 5) mit RSpec-Qiita

1. Rspec-Setup

Installieren Sie Gem

Rspec zu gemfile hinzugefügt

gemfile


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

Dann installieren Sie Gem.

$ bundle install

Installieren Sie rspec mit dem Befehl Rails in Ihrem Projekt.

$ rails generate rspec:install

Bearbeiten Sie die Rspec-Einstellungen

.rspec


--require rails_helper
--format documentation

config/application.rb


module RailsTutorial
  class Application < Rails::Application
    config.load_defaults 5.2
    
    #↓ Hinzufügen
    #Schienen g durch Angabe von rspec für das Testframework~Einstellung zum automatischen Erstellen einer Spezifikationsdatei, wenn
    config.generators do |g|
      g.test_framework :rspec,
                       helper_specs: false,
                       routing_specs: false,
                       view_specs: false,
                       controller_specs: false
    end
    #↑ Hinzufügen

  end
end


2. Schreiben Sie einen Test mit Rspec

Erstellen Sie eine Rspec-Datei

Es scheint, dass der Testcode in Rspec'spec'in heißt. (Der Testcode des Controllers scheint wie "Controller-Spezifikation" zu sein.)

Für Rails können Sie mit dem Befehl Rails generate eine Datei erstellen.

#Für Controller
$ rails g rspec:Name der Controller-Datei

#Für Modell
$ rails g rspec:Modelldateiname

$ rails g rspec:controller StaticPages

Testcode schreiben

spec/requests/static_pages_request_spec.rb


require 'rails_helper'

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

	#Senden Sie den Test an die Startseite
	context 'GET #home' do
		before { get static_pages_home_path }

		#Antworttest auf Anfrage
		it 'responds successfully' do
			expect(response).to have_http_status 200
		end
	end

end

Ich bin mir nicht sicher über Beschreibung oder Kontext.

Schauen wir uns jeden an.

・ Beschreiben Sie, geben Sie ein

_spec.rb



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

end

↓

RSpec.describe [Testname], type: [Spezifikationstyp] do

end

#Spezifikationstyp
#Diesmal handelt es sich um einen Antworttest, daher handelt es sich um eine Anforderung.
#Außerdem'system','controller','model','routing','view'Und so weiter.

・ Kontext davor

_spec.rb


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

        #Antworttest auf Anfrage
        it 'responds successfully' do
            expect(response).to have_http_status 200
        end
    end
end

  ↓

RSpec.describe 'Access to static_pages', type: :request do
    context ['~Im Falle von'(Mit deinem Lieblingsnamen)] do
        before [Vorbereitungen]

        #Antworttest auf Anfrage
        it ['Inhalt der Spezifikationen'(Mit deinem Lieblingsnamen)] do
            [Erwartetes Verhalten]
        end
    end
end

Wenn Sie in der Reihenfolge von oben lesen Der Testcode wird schließlich darin aufgeführt. Der Testcode ist in einer Struktur geschrieben, die viele Nester beschreiben> Kontext> ....

spec/requests/static_pages_request_spec.rb


require 'rails_helper'

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

	#Senden Sie den Test an die Startseite
	context 'GET #home' do
		before { get static_pages_home_path }

		#Antworttest auf Anfrage
		it 'responds successfully' do
			expect(response).to have_http_status 200
		end
	end

end

expect(response).to have_http_status 200

Dies ist vor und {get static_pages_home_path} Wenn die GET-Methode zur Kommunikation mit dem Home-Pfad verwendet wird und die zurückgegebene Antwort 200 (OK) lautet, bedeutet dies, dass der Test in Ordnung ist.

Das ist einfach, aber es geht darum, wie man einen Rspec-Antworttest in Rails schreibt.

Recommended Posts

[Rails] Informationen zum Rspec-Antworttest
[Schienen] Test mit RSpec
[Rails] Testcode mit Rspec
Über Schienen 6
[Rails5] Rspec -Einheitentest beim Verschachteln-
Über App-Tests RSpec (Unit Test)
[Schienen] Machen wir einen Unit-Test mit Rspec!
Informationen zum Rails-Routing
[Ruby on Rails] Test mit RSpec anzeigen
Rails Tutorial Test
[Ruby on Rails] Controller-Test mit RSpec
[Rails] Über ActiveJob!
Rspec Basics [Rails]
[Ruby on Rails] Modelltest mit RSpec
[Rails5] Rspec -validierung-
Über Rails Controller
Einführung in Rspec, ein Testframework für Ruby on Rails
[Rails] Informationen zu Migrationsdateien
[Schienen 6] Über die wichtigsten Edelsteine
[Rails] Über aktiven Hash
Informationen zur Versionsspezifikation für Schienen
Testen Sie Nokogiri mit Rspec.
Schienen, RSpec-Installationsverfahren
[Schienen] Standardwerte festlegen
Schienen Starke Parameter
[Anfänger] Über Rails Session
[Schienen] Von der Testvorbereitung zum Modelleinheitentest [RSpec]
[Rails / RSpec] Schreiben Sie einen Modelltest (mit Shoulda Matchers / FactoryBot)
Schienen testen db nur fallen
[RSpec] Verwenden wir FactoryBot [Rails]
Informationen zum Benennen von Rails-Modellmethoden
[Rails] Informationen zur Struktur des scss-Ordners
[Challenge CircleCI von 0] Erstellen Sie einen automatisierten Test (Rails6.0, mysql8.0, Rspec)
Über Rails Scraping-Methode Mechanisieren
[R Spec on Rails] So schreiben Sie Testcode für Anfänger von Anfängern
Verstehen Sie die Codeabdeckung mit Rspec, dem Ruby on Rails-Testframework
Bild-Upload mit CarrierWave ~ Rspec-Test ~
Über das Symbol <%%> in Rails erb
[Rails] Über die Implementierung der Like-Funktion
[Rails] Über die Hilfsmethode form_with [Basic]
Kopieren Sie den Test und fügen Sie ihn mit RSpec ein
Überlegungen zu Schienen und sauberer Architektur
[RSpec] Unit Test (mit gem: factory_bot)