Gibt es einen Standard oder eine bewährte Methode, um zu testen, ob eine Aktion in Rails den korrekten Text zurückgibt? Zum Beispiel habe ich eine einfache Aktion, die für die Durchführung der Ajax-Validierung verwendet wird und Folgendes tut:
def get_object_id
if params[:id].blank?
return render(:text => -1, :layout => false)
end
my_object = MyObject.find_by_id(params[:id].strip)
# Wenn das Objekt gültig ist, gib die Objekt-ID zurück
if my_object and my_object.active?
return render(:text => my_object.id, :layout => false)
end
# Andernfalls, gib -1 zurück
return render(:text => -1, :layout => false)
end
Derzeit verwende ich das @response-Objekt in meinen Tests ... z.B.:
def test_get_object_id_returns_invalid_for_non_existent_id
# Handeln
get :get_object_id, :id => 999
# Bestätigen
assert_response :success
assert_equal "-1", @response.body
Aber obwohl ich größtenteils neu in Rails bin, deutet das, was ich bisher gesehen habe, darauf hin, dass es wahrscheinlich eine bessere Möglichkeit gibt, dies zu tun, als @request.body
zu überprüfen.
Also, meine Frage an euch Ruby-Experten lautet: Ist das der beste Weg?