私はレールのテストに不慣れで、unit: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
私のテストケースは次のとおりです
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
このメソッドは post メソッドです。このテストの実行中に失敗し、メッセージが表示されます
"キャンペーンを保存する必要があります (0.07 秒) http://test.host/dashboardへのリダイレクトであると予想された応答が、 http: //test.host/ /home/nouman/.rvm/gems/ruby-1.9へのリダイレクトでした.2-p290@global/gems/actionpack-3.1.3/lib/action_dispatch/testing/assertions/response.rb:67:in `assert_redirected_to'
私の推測では、パラメーターをチェックするために正しいアサーションを与えていないということです
params[:app_id] および @app = TestApp.find(params[:app_id])。
これらの属性をチェックし、パラメータが空白かどうかをチェックするアサーションを作成するにはどうすればよいですか。指定された ID を持つオブジェクトを見つける方法を教えてください。