Ein Memorandum, wenn eine Anwendung mit RubyonRails entwickelt und dann für eine andere Anwendung verwendet wird (Mac ab 21. Oktober 2020)
Ich habe lange gebraucht, um loszulegen. Bitte versuchen Sie es, wenn Sie ein Gefühl dafür bekommen möchten.
Gemfile
group :test do
gem 'capybara', '>= 2.15'
gem 'rspec-rails'
gem "factory_bot_rails"
gem 'faker'
end
Terminal
bundle install
rspec-rails Juwel zum Ausführen von Rspec Ruby on Rails-Testframework RSpec wird gestartet https://qiita.com/tatsurou313/items/c923338d2e3c07dfd9ee
capybara Da Rspec ohne Einstellung des Treibers nicht funktionierte, wurde der Gem eingeführt Capybara Spickzettel https://qiita.com/morrr/items/0e24251c049180218db4
faker Juwel zum Erstellen von Daten. Hauptsächlich kann der Bildschirm beim Ausführen von Rspec mithilfe der Bibliothek in Gem für die Testdaten des Eingabetests zufällig erstellt werden. Sie können auch temporäre Daten in die Seed-Datei eingeben, was praktisch ist. Ich habe versucht, Faker zu verwenden! (Verwendungs- und Ausführungsbeispiel) https://qiita.com/ginokinh/items/3f825326841dad6bd11e
factory_bot_rails Ich habe es für Gem verwendet, das zuerst Testdaten erstellen kann, hauptsächlich für das Debuggen von Modellen. [Rails] Hinweise zur Verwendung von factory_bot https://qiita.com/at-946/items/aaff42e4a9c2e4dd58ed
Terminal
rails generate rspec:install
Die folgenden Dateien werden bei der Installation erstellt.
Terminal
Running via Spring preloader in process 9045
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
Ich verstehe nicht, wie es funktioniert, und wahrscheinlich kann ich das Programm dank der Einstellungen hier in derselben Umgebung wie der Browser ausführen.
spec_helper.rb
require 'capybara/rspec'
RSpec.configure do |config|
config.before(:each, type: :system) do
#driven_by :selenium_chrome_headless
driven_by :rack_test
end
end
Sie können Daten erstellen, die im Ordner "Fabriken" erstellt werden sollen, das Modell auf Validierung testen usw. und den tatsächlichen Bildschirmbetrieb mit sysyem testen. Der Code wird als Referenz beschrieben
factories/users_spec.rb
FactoryBot.define do
factory :user do
email { Faker::Internet.email }
password { 'password' }
password_confirmation { 'password' }
end
end
model/user_spec.rb
require 'rails_helper'
RSpec.describe 'Testen des Benutzermodells', type: :model do
before do
@user = build(:user)
end
describe 'Validierung' do
it 'NG, wenn die E-Mail leer ist' do
@user.email = ''
expect(@user.valid?).to eq(false)
end
end
end
system/user_spec.rb
require 'rails_helper'
describe 'Benutzerauthentifizierungstest' do
describe 'Neue Benutzerregistrierung' do
before do
visit new_user_registration_path
end
context 'Übergang zum neuen Registrierungsbildschirm' do
it 'Erfolgreiche Neuanmeldung' do
fill_in 'user[email]', with: Faker::Internet.email
fill_in 'user[password]', with: 'password'
fill_in 'user[password_confirmation]', with: 'password'
click_button "sign in" #Das auf der Schaltfläche angezeigte Zeichen
expect(page).to have_content 'successful' #Bitte geben Sie die Nachricht an, die nach der Anmeldung angezeigt wird
end
end
end
end
Alle Tests im Spezifikationsordner werden mit dem folgenden Befehl ausgeführt. Die erfolgreichen Tests werden grün und die nicht erfolgreichen rot auf dem Terminal angezeigt.
Terminal
bundle exec rspec spec/ --format documentation
Danke für deine harte Arbeit.
Recommended Posts