[RUBY] Rails-Anfänger haben versucht, mit RSpec zu beginnen

zunaechst

Nachdem ich das Rails-Tutorial abgeschlossen habe, möchte ich RSpec vorstellen. Zunächst werde ich RSpec selbst und die damit verbundenen Frameworks vorstellen.

Was ist RSpec überhaupt?

RSpec ist ein Testframework für die verhaltensgesteuerte Entwicklung in Ruby (Auszug aus Wikipedia).

Verhaltensgesteuerte Entwicklung scheint eine Entwicklungsmethode zu sein, bei der das Verhalten zuerst erstellt und der Code später geschrieben wird. Mit anderen Worten, Sie erstellen so etwas wie eine Spezifikation, die den Vorgang im Voraus beschreibt, und implementieren die Funktion entsprechend. Es kann eher wie "Schreiben einer Spezifikation" als "Schreiben eines Tests" sein.

Capybara

capybara ist ein Testframework, das seit Rails 5.1 enthalten ist. Durch die Kombination mit RSpec wird automatisch der Browservorgang ausgeführt, den die Benutzer tatsächlich manuell überprüfen.

FactoryBot

FactoryBot ist ein Juwel, das die Erstellung von Testdaten unterstützt. Es gibt eine ähnliche Funktion namens Fixture, die im Rails-Standard zum Erstellen von Testdaten enthalten ist. Fixture kann im YAML-Format mit einer Datenbank ähnlichen Struktur beschrieben werden, eignet sich jedoch nicht für eine komplizierte Datensteuerung. Auf der anderen Seite erleichtert FactoryBot die Steuerung des Status und der Beziehungen von Daten mithilfe von ActiveRecord-Rückrufen. Ich habe interpretiert, dass Fixture eine Szene aus der Datenbank ausschneidet und FactoryBot die Bewegung der Daten beschreibt. Wenn Sie einen Fehler machen, weisen Sie bitte darauf hin.

Erstellung der RSpec-Beschreibung

Fügen Sie dem Test der Gemfile zunächst einen Edelstein namens rspec-Rails hinzu.

Gemfile.


gem 'rspec-rails'
$ bunble

Führen Sie nach Abschluss der Gem-Installation den folgenden Befehl aus.

$ rails g rspec:install

Damit ist die Installation von RSpec selbst abgeschlossen. Es ist einfach.

Capybara-Einstellungen

Als nächstes konfigurieren wir die Einstellungen für Capybara, die in RSpec verwendet werden sollen.

spec/spec/helper.rb


require 'capybara/rspec'

RSpec.configure do |config|
  config.before(:each, type: :system) do
    config.include Capybara::DSL
    config.include FactoryBot::Syntax::Methods
    driven_by :selenium_chrome_headless
  end

Dieses Mal werde ich Headless Chrome als Browser mit Systemspezifikation verwenden, also setze ich selenium_chrome_headless.

Wir stellen vor: FactoryBot

Um FactoryBot zu installieren, beschreiben Sie es in der Gemfile wie folgt.

Gemfile.


gem 'factory_bot_rails'
$ bundle

Damit ist die Einführung von FactoryBot abgeschlossen.

Als nächstes möchte ich darauf eingehen, wie man RSpec schreibt, aber es scheint lang zu sein, also werde ich es das nächste Mal tun.

Der Inhalt ist im ersten Beitrag einfach, aber ich hoffe, Sie werden ihn beim nächsten Mal wieder lesen.

Recommended Posts

Rails-Anfänger haben versucht, mit RSpec zu beginnen
Ich habe versucht, mit Web Assembly zu beginnen
[Hinweis] Erste Schritte mit Rspec
Ich habe versucht, mit Spring Data JPA zu beginnen
Wie fange ich mit schlank an?
Ich habe versucht, mit Swagger mit Spring Boot zu beginnen
Erste Schritte mit Eclipse Micro Profile
[Schienen] Test mit RSpec
[Für Rails-Anfänger] Zusammenfassung der Verwendung von RSpec (Überblick)
Beginnen Sie mit Gradle
Ich habe MySQL 5.7 mit Docker-Compose gestartet und versucht, eine Verbindung herzustellen
Einführung in "Einführung in die praktische Rostprogrammierung" (Tag 3)
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 1
[1st] RSpec-Anfänger haben versucht, Model Spec als Anfänger zu schreiben
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
[Rails] Ich habe versucht, die Stapelverarbeitung mit der Rake-Task zu implementieren
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 2
Jetzt ist es an der Zeit, mit der Stream-API zu beginnen
Erste Schritte mit JDBC mit PostgresSQL unter MacOS
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 0
Beginnen wir mit der parallelen Programmierung
Ich habe versucht, mit Java zu interagieren
Stellen Sie mit dem iPhone eine Verbindung zum Rails-Server her
Einführung in React to Rails mit React-Rails
Java, Arrays für Anfänger
Memo mit Struts2 + Ajax zu bekommen
[Schienen] Machen wir einen Unit-Test mit Rspec!
Einfache Codeüberprüfung für den Einstieg in Jenkins / SonarQube: Statische Analyse
Ich habe versucht, die Bildvorschau mit Rails / jQuery zu implementieren
So erhalten Sie den Wert von Boolean mit jQuery in einfacher Rails-Form
[Rails] Was tun, wenn Sie mit form_with keine Parameter abrufen können?
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen
[Ruby on Rails] Test mit RSpec anzeigen
Mit Docker auf Heroku bereitstellen (Rails 6, MySQL)
[Ruby on Rails] Controller-Test mit RSpec
Einführung in "Einführung in die praktische Rostprogrammierung" (Tag 4) Aufrufen von Rust von Ruby
[Rails] So erhalten Sie die aktuell mit devise angemeldeten Benutzerinformationen
[Ruby on Rails] Modelltest mit RSpec
So erstellen Sie eine Rails 6-Umgebung mit Docker
Schnelle Anfänger versuchten, Mikrowellenlogik zu implementieren!
[Rails] Ich möchte mit RSpec testen. Wir unterstützen Ihren Schritt [Einführungsverfahren]
Beginnen wir mit Java-Create a Development Environment ①
Ich habe versucht, AdoptOpenJDK 11 (11.0.2) mit dem Docker-Image zu überprüfen
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
[Rails] Rails neu, um eine Datenbank mit PostgreSQL zu erstellen
Ich habe versucht, die Federbeinkonfiguration mit Coggle zu verwalten
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
Ich habe versucht, Anmeldeinformationen mit JMX zu verwalten
Einführung in Rspec mit Ruby on Rails x Docker
Ich habe versucht, die Sitzung in Rails zu organisieren
Holen Sie sich ein untergeordnetes Modell mit Schienen created_at desc scope