2016-10-27 6 views
3

オンラインで記事の例だけでなくテストが書かれていれば、与えられた例と一致するように書式を修正しようとしても問題の修正方法を説明しています。私は40回の警告私は実行するたびに、完全なテストスイート駆除警告:ActionController :: TestCase HTTPリクエストメソッドはキーワード引数のみを受け入れるでしょう

GET example 

it "renders the #show view" do 
    food = create(:food) 
    get :show, params: { id: food.id } 
    expect(response).to render_template :show 
end 

CREATE Example 

it "redirects to user page of user who uploaded food" do 
    food_params = FactoryGirl.attributes_for(:food) 
    post :create, :food => food_params 
    expect(response).to redirect_to user_path(@user.id) 
    end 

SHOW example 

it "assigns the requested food to @food" do 
    food = create(:food) 
    get :show, params: { id: food.id } 
    expect(assigns(:food)).to eq(food) 
end 

DELETE 

it "deletes the food" do 
    expect{ delete :destroy, id: @food}.to change(Food, :count).by(-1) 
end 

it "redirects to user page of user who deleted food" do 
    delete :destroy, id: @food 
    expect(response).to redirect_to user_path(@user.id) 
end 

PUT 

it "located the requested @food" do 
    put :update, id: @food, food: FactoryGirl.attributes_for(:food) 
    expect(assigns(:food)).to eq(@food) 
    end 

    it "changes @food's attributes" do 
    put :update, id: @food, 
     food: FactoryGirl.attributes_for(:food, title: "Yummers", kind: "Salad") 
     @food.reload 
     expect(@food.title).to eq("Yummers") 
     expect(@food.kind).to eq("Salad") 
    end 

答えて

4

を取得しないように、私が正しく、また、テストのない心配する必要はありませんように、あなたが取得しているこれを正しくやりたいですこれは、古いスタイルのparamsを渡しているCREATEの例です。

変更この:これに

post :create, :food => food_params 

post :create, params: { food: food_params } 
+0

は私が私のプットとのトラブルを抱えて、同様のメソッドを削除しています実現。これが働いてありがとうございます。私は同じパターンに従ってみましたが、まだ警告を受けていました。テストをパスするために元のフォームに戻しましたが、私の編集内容をチェックして、それらを変更する必要があるかどうか確認できますか? –

+0

'delete:destroy、params:{id:@food.id}'は動作するはずです。両方の 'it'ブロックでそれを変更してください。 –

+0

ありがとう!それは働いた –

関連する問題