Ich bin neu auf Schienen testen und ich verwende Unit: Test. Ich habe eine Aktion in meinem ControllerWie schreibe ich einen funktionalen Testfall in Schienen 3.1 und Einheit: Test
def save_campaign
unless params[:app_id].blank?
@app = TestApp.find(params[:app_id])
if params[:test_app]
@app.update_attributes(params[:test_app])
end
flash[:notice] = "Your Registration Process is completed"
redirect_to "/dashboard"
else
redirect_to root_path
end
end
und mein Testfall ist, wie folgend
test "should save campagin " do
assert_difference('TestApp.count', 0) do
post :save_campaign, test_app: @test_app.attributes
end
assert_redirected_to "/dashboard"
end
end
Diese Methode ist eine post-Methode. Während dieses Test läuft, wird es versagen und mir
eine Meldung angezeigt„sollte Campagin (0.07s) Erwartete Antwort speichert eine Umleitung auf http://test.host/dashboard zu sein, aber war eine Umleitung zu http://test.host/ /home/nouman/.rvm /gems/[email protected]/gems/actionpack-3.1.3/lib/action_dispatch/testing/assertions/response.rb:67:in `assert_redirected_to‘
Meine Vermutung ist, dass ich Ich gebe es nicht richtig Behauptung zu überprüfen Parameter
params [: app_id] und @app = TestApp.find (params [: app_id]).
Wie kann ich eine solche Assertion schreiben, um diese Attribute zu überprüfen, prüfen, ob ein Parameter leer ist. Wie kann ich ein Objekt mit einer bestimmten ID finden?
Dank Trung für die Antwort, Entschuldigung, ich war mir Ihrer Antwort nicht bewusst, deshalb akzeptiere ich sie nach ein paar Monaten. – user1014473