Nachdem ich das Rails-Tutorial abgeschlossen habe, möchte ich RSpec vorstellen. Zunächst werde ich RSpec selbst und die damit verbundenen Frameworks vorstellen.
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.
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.
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.
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