Ich bin ein neuer Rails-Ingenieur. Ich habe RSpec beim Testen von Rails gelernt und es zusammengefasst. Wir serialisieren einen Ingenieur, der in 100 Tagen zu einer Portion wird. Heute ist der 7. Tag Übrigens für einen Vergleich zwischen Minitest und RSpec hier
Ein Framework, das eine domänenspezifische Sprache (DSL) zum Testen von Klassen und Methoden verwendet, die in Ruby und Ruby on Rails erstellt wurden. Mit anderen Worten, es ist eine reine Testprogrammiersprache.
FactoryBot Ein Juwel, das die Erstellung von Testdaten unterstützt FactoryBot erleichtert die Vorbereitung von Testdaten Es gibt auch einen Mechanismus namens Fixture im Rails-Standard. Es ist einfacher, den Status von Daten und die Beziehung zwischen Daten zu erfassen als hier. Also diesmal benutze ich das auch.
Capybara E2E-Testframework (End-to-End) für Webanwendungen. Es wird in Kombination mit RSpec usw. verwendet. Sie können den Browserbetrieb einer Webanwendung simulieren.
Die Grundform der RSpec-Beschreibung lautet wie folgt.
describe [Ziel zur Beschreibung der Spezifikation(Testziel)], type[Art der Spezifikation] do
context[Eine Situation] do
before do
[Vorbereitungen]
end
it[Inhalt der Spezifikationen (Überblick über die Erwartungen)] do
[Erwartetes Verhalten]
end
end
end
Es ist schwer zu verstehen, selbst wenn Sie sich das ansehen, also werde ich es teilen. describe
describe [Ziel zur Beschreibung der Spezifikation(Testziel)], type[Art der Spezifikation] do
end
Schreiben Sie in "Beschreiben", wofür Sie die Spezifikation beschreiben möchten. Zum Beispiel, wenn Sie eine Spezifikation für die Systemtest- und Profilanzeigefunktion schreiben möchten
describe 'Profilanzeigefunktion', type: :system do
So wurde es gesagt.
context Dies wird verwendet, um den Inhalt des Tests entsprechend der Situation und der Variation des Zustands zu klassifizieren. Zum Beispiel, ob die Benutzereingabe korrekt oder falsch ist, ob der Benutzer angemeldet ist usw. Ich werde es im Kontext beschreiben.
before Vorher schreibt der Code, um die Voraussetzungen für den gesamten Bereich zu implementieren Das Folgende sind Voraussetzungen für die Anzeige eines Profils. In diesem Fall ist es Voraussetzung, dass Sie angemeldet sind
context 'Wenn der Benutzer angemeldet ist' do
before do
visit login_path
fill_in 'Mail Adresse', with: '[email protected]'
fill_in 'Passwort', with: 'password'
click_button 'Einloggen'
end
end
it Das letzte beschreibt das erwartete Verhalten und den Text im Code innerhalb des Blocks expect(page).to have_content 'hoge' Die obige Beschreibung hat den Inhalt "hoge" auf dem Bildschirm, richtig? ?? Es ist der Inhalt. Da erwartet wird, dass es Inhalte gibt, ist es bis dahin so, wenn es auf Englisch bleibt.
#Auf dem Profilbildschirm'Benutzerprofil'Es gibt Inhalte??
it 'Das Benutzerprofil wird angezeigt' do
expect(page).to have_content 'Benutzerprofil'
end
describe 'Profilanzeigefunktion', type: :system do
context 'Wenn der Benutzer angemeldet ist' do
before do
visit login_path
fill_in 'Mail Adresse', with: '[email protected]'
fill_in 'Passwort', with: 'password'
click_button 'Einloggen'
end
it 'Das Benutzerprofil wird angezeigt' do
expect(page).to have_content 'Benutzerprofil'
end
end
end
Auf diese Weise wird die Grundform von RSpec festgelegt. Es ist schwer, alles plötzlich zu verstehen, aber wenn ich es teile, scheint es ganz so.
Dieses Mal habe ich es so zusammengefasst, wie man die Grundform sieht. Es sieht tatsächlich verschachtelter und komplizierter aus, Zunächst möchte ich die Grundform festhalten und mein Verständnis von RSpec vertiefen.
Das ist alles für heute ** 93 Tage, um ein vollwertiger Ingenieur zu werden **