[RUBY] [Rails] Integrationstest mit Capybara (von der Einführung bis zur einfachen Testausführung)

Einführung

Ein Integrationstest ist ein Test, der bestätigt, dass sich die App wie beabsichtigt verhält. Sie können es selbst im Browser tun, aber das Schreiben des Testcodes hat einen großen Vorteil. Ich denke, es ist besser, ihn nach Möglichkeit zu schreiben.

verdienen ** ・ Sobald Sie den Code geschrieben haben, können Sie ihn einfach testen ** (Wenn Sie keinen Testcode haben, müssen Sie das Formular ausfüllen und den Link jedes Mal verschieben.) ** ・ Du kannst deine Gedanken organisieren ** Indem Sie es aufschreiben, können Sie Ihre Gedanken objektiv betrachten und das Erkennen von Auslassungen erleichtern. ** ・ Kann als Aufzeichnung aufgezeichnet werden ** Sie können zurückblicken, wie viel Sie von der App erwarten Darüber hinaus kann ein Dritter den Testinhalt problemlos überprüfen.

Dieses Mal werde ich versuchen zu überprüfen, ob der Buchungsvorgang wie die folgende GIF-Datei funktioniert. e02d69df1a47ecac2b896cfeb09626d2.gif

Wir stellen vor: Capybara

Zuerst werden wir einen Edelstein namens Capybara vorstellen.

Gemfile


group :test, :development do
  #(Kürzung)
  gem 'capybara'
end

Terminal


$ bundle install

spec/rails_helper.rb


#Folgende Beschreibung wurde hinzugefügt
require 'capybara/rspec'

Bereiten Sie als Nächstes eine Arbeitsdatei vor. Lassen Sie uns das Verzeichnis spec / features erstellen. Erstellen Sie eine Testdatei darin. Diesmal ist es "post_spec.rb".

Testcode

Ich werde es in "post_spec.rb" beschreiben.

spec/features/post_spec.rb


require 'rails_helper'

feature 'post', type: :feature do
  scenario 'Posten können' do
    #Es gibt einen Post-Button
    visit root_path
    expect(page).to have_content('Post')

    #Nachbearbeitung funktioniert
    expect {
      click_link('Post')
      expect(current_path).to eq new_post_path
      fill_in 'post_content', with: 'Hallo'
      fill_in 'post_tags_attributes_0_content', with: 'Etikett'
      find('input[type="submit"]').click
    }.to change(Post, :count).by(1)

    #Auf die oberste Seite umgeleitet
    expect(current_path).to eq root_path

    #Der gepostete Inhalt wird auf der oberen Seite angezeigt
    expect(page).to have_content('Hallo')
  end
end

Beschreiben Sie eine Reihe von Operationen zwischen "senario do ~ end".

Dieses Mal bestätigen wir, dass der Post-Link angezeigt wird, bestätigen den Post-Prozess, bestätigen die Weiterleitung und bestätigen die Anzeige des geposteten Inhalts in der angegebenen Reihenfolge. Ich werde die Details der einzelnen Prozesse nicht erläutern, z. B. mit Besuch zum angegebenen Pfad wechseln, das Formular mit fill_in ausfüllen, mit find oder click posten, aber es wird angezeigt, wenn Sie es überprüfen. Lassen Sie uns also herausfinden, ob es einen Prozess gibt, den Sie ausführen möchten ..

Dieser Spickzettel enthält eine Liste von Dingen, die mit Capybara verwendet werden können. Sie können also darauf verweisen.

Testlauf

Es ist gut, den Test auszuführen, indem Sie die Datei wie folgt angeben.

Terminal


$ bundle exec rspec spec/features/post_spec.rb

Geben Sie unter spec die Datei an, die Sie ausführen möchten. Dieses Mal habe ich den Testcode in post_spec.rb in das Funktionsverzeichnis geschrieben, also sieht es so aus wie oben.

Lass es uns laufen.

12172459f80a1f0c542410796c6829fe.png Wenn es wie oben angezeigt wird, wurde es erfolgreich gelöscht.

Recommended Posts

[Rails] Integrationstest mit Capybara (von der Einführung bis zur einfachen Testausführung)
[Schienen] Von der Testvorbereitung zum Modelleinheitentest [RSpec]
Einführung in Micronaut 2 ~ Unit Test ~
[Rails] Testcode mit Rspec
Fehler bei der Verwendung von Schienen Capybara
[Integrationstestcode] So wählen Sie ein Element aus date_select aus
Ruby on Rails - Von der Umgebungskonstruktion bis zur einfachen Anwendungsentwicklung auf WSL2
Ich habe versucht, eine einfache Anwendung mit Dockder + Rails Scaffold zu erstellen
Einführung in Ruby (aus anderen Sprachen)
Von der Einführung bis zur Verwendung von byebug
[Einführung in Rails] Verwendung von Render
Vom Ziehen des Docker-Images der Schienen bis zum Starten
[Rails] So laden Sie Bilder mit Carrierwave hoch
Stellen Sie mit Eclipse eine Verbindung von Java zu MySQL her
[Rails] Zuweisen von Variablen vom Controller zu JavaScript
[Java] Fluss vom Quellcode zur Ausführung
Einführung in die Überwachung von Java Touching Prometheus
So implementieren Sie die Image-Veröffentlichung mithilfe von Schienen
So beheben Sie Fehler, die beim Integrationstest "Ruby on Rails" auftreten
[Rails] Ich möchte mit RSpec testen. Wir unterstützen Ihren Schritt [Einführungsverfahren]