6.7 Referenz
Rake-Tasks für Tests
- rake test
Führt alle Unit- und Functional-Tests aus.
- rake test:functionals
Führt die Functional-Tests im Verzeichnis test/functional aus.
- rake test:integration
Führt die Integration-Tests im Verzeichnis test/integration aus.
- rake test:plugins
Führt die Tests aller Plug-ins oder nur die Tests für ein bestimmtes Plug-in ( rake test:plugins PLUGIN=name ) aus.
- rake test:recent
Testet die jüngsten Änderungen.
- rake test:uncommitted
Testet die letzten Änderungen seit dem letzten checkin (ist nur möglich, wenn SVN genutzt wird).
- rake test:units
Führt die Unit-Tests im Verzeichnis test/unit aus.
- rake fixtures:load
Lädt alle Fixtures in die Datenbank. Datei gehen die ursprünglichen Daten der Tabellen verloren.
- rake fixtures:load FIXTURES=x,y,...
Lädt nur bestimmte Fixtures in die Datenbank.
Die wichtigsten Assert-Befehle
In der folgenden Liste sind die wichtigsten Assert-Methoden aufgeführt. Einige Assert-Methoden stammen aus der »Ruby Standard Library«, wie z. B. assert_equal(), und andere sind Bestandteil des Rails-Frameworks, wie z. B. assert_select() . Die angegebenen Klammern sind in Ruby optional. Allen Assert-Methoden ist gemeinsam, dass sie entweder erfolgreich sind oder einen sogenannte »Failure« bei Ausführung der Tests (z. B. mit rake test) liefern.
- assert(ausdruck)
Stellt sicher, dass der übergebene Ausdruck weder false noch nil ist.assert @flight.save
- assert_not_nil(ausdruck)
Diese Assert-Methode ist erfolgreich, wenn der Ausdruck nicht nil ist.assert_not_nil flights
- assert_equal(soll, ist)
Überüft,ob der »ist«-Wert dem »soll«-Wert entspricht.assert_equal "DUS", @flight.departure_airport.code
- assert_respond_to(objekt, methode)
Es wird überprüft, ob das Objekt auf die angegebene Nachricht bzw. Methode antwortet. Im Prinzip bedeutet dies, dass das Objekt oder dessen Klasse die angegebene Methode besitzt. Im folgenden Beispiel wird überprüft, ob das Objekt airport die Methode country besitzt.assert_respond_to airport, :country
- assert_instance_of(klasse, objekt)
Die Assert-Methode ist erfolgreich, wenn das übergebene Objekt eine Instanz der angegebenen Klasse ist.assert_instance_of Airport, @flight.departure_airport
- assert_difference(ausdruck, zahl) block
Diese Assert-Methode funktioniert nach folgendem Prinzip: Der angegebene Ausdruck wird vor und nach Ausführung des Blocks berechnet. Wenn die Differenz der angegebenen Zahl entspricht, so ist das Ergebnis der Assert-Methode erfolgreich. Die Angabe von »zahl« ist optional. Wird nichts übergeben, wird eine Differenz von 1 erwartet.assert_difference('Flight.count', -1) do delete :destroy, :id => flights(:dus_muc).id end assert_difference('Flight.count') do post :create, :flight => valid_flight_attributes end
- assert_select(selection, wert)
Mit dieser Assert-Methode kann überprüft werden, ob bestimmte Tags und Texte auf der Ergebnisseite vorkommen. Der Befehl kann in Functional-Tests und Integration-Tests verwendet werden. Es sind auch verschachtelte Befehle möglich.
assert_select 'td', '10.06.2008 16:10' # Verschachtelte assert_select Befehle assert_select 'select#flight_departure_airport_id' do assert_select "option",'DUS' assert_select 'option[value=?]', airports(:dus).id end
- assert_redirected_to(pfad)
Diese Assert-Methode überprüft, ob die Action tatsächlich im Controller zu dem gewünschten Pfad weitergeleitet hat.
assert_redirected_to flight_path(assigns(:flight))
Diese Methode eignet sich nur für Functional-Tests.
- assert_response(code)
Diese Methode prüft, ob der Aufruf einer bestimmten Action des Controllers den gewünschten HTTP-Response-Code geliefert hat. Folgende Codes sind möglich:
- success (Status-Code 200)
- redirect (Status-Code 300--399)
- missing (Status-Code 404)
- error (Status-Code 500--599)
assert_response :success
Siehe auch http://railsbuch.de/urls/b.
Optionale Fehlermeldung ausgeben |
Bei den Assert-Methoden kann als letzter Parameter ein Fehlertext übergeben werden, der angezeigt wird, falls die Assert-Methode fehlschlägt:
assert ein_objekt.save, 'ein_objekt could not be saved' |
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.