[RUBY] So schreiben Sie Testcode mit Basic-Zertifizierung

【Überblick】

1. Schlussfolgerung </ b>

2. Wann wird es sein? ○○ </ b>

Ergänzung: Entwicklungsumgebung </ b>

  1. Fazit

Betten Sie eine Umgebungsvariable in eine Variable ein und springen Sie mit visit zu der URL, in die die Umgebungsvariable eingebettet ist. </ b>!

  1. Wie zu beschreiben

def basic_pass(path) #---❶
  username = ENV["STUDY"] 
  password = ENV["STUDY_password"]
  visit "http://#{username}:#{password}@#{Capybara.current_session.server.host}:#{Capybara.current_session.server.port}#{path}"
end

RSpec.describe 'Einen Kommentar posten', type: :system do
  before do
    @time = FactoryBot.create(:time)
    @comment = Faker::Lorem.sentence
  end

  it 'Angemeldete Benutzer können die Detailseite zum Selbststudium kommentieren' do
    #Anmeldung
    basic_pass new_user_session_path #---❷
    fill_in 'Email', with: @time_report.user.email
    fill_in 'Password', with: @time_report.user.password
    find('input[name="commit"]').click
    expect(current_path).to eq root_path
  end
end

Ich habe es wie oben geschrieben!

❶ Da das spezifische Beispiel der folgenden URL keine Umgebungsvariable ist, haben wir der Variablen die Umgebungsvariable zugewiesen. Danach habe ich die folgende URL nachgeahmt. ❷ Wenn Sie die basic_pass-Methode nicht schreiben, bevor der Integrationstestcode geladen wurde, können Sie die ID und das Kennwort des Basic-Zertifizierungstests nicht übergeben. Daher codiere ich es ganz am Anfang des Integrationstestcodes und gehe zum neuen Registrierungsbildschirm (mit devise gem).

URL, die sehr hilfreich war: Bestehen der Basiszertifizierung mit Capybara + Headless Chrome (Systemspezifikation)

Ergänzung: Entwicklungsumgebung

Ruby 2.6.5
Rails 6.0.3.3
MySQL
Visual Studio Code
(Caprybara,Rspec,GoogleChrome)

Recommended Posts