簡體   English   中英

DEPRECATION WARNING:ActionController :: TestCase HTTP請求方法只接受關鍵字參數

[英]DEPRECATION WARNING: ActionController::TestCase HTTP request methods will accept only keyword arguments

即使在我嘗試修改格式以匹配測試編寫后給出的示例以及在線文章中解釋如何解決問題的示例之后,我仍然會收到此警告。 我想這樣做是正確的,這樣我就不必擔心沒有正確測試,所以每次運行完整的測試套件時我都不會得到40個警告

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

你從你的CREATE示例中得到了這個,你在舊式中傳遞params。

改變這個:

post :create, :food => food_params

對此:

post :create, params: { food: food_params }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM