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
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
.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
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
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