2017-05-05 35 views
20

我有簡單的動作表演控制器規格未知的關鍵字:ID

def show 
    @field = Field.find_by(params[:id]) 
end 

,我希望寫規範它

require 'spec_helper' 

RSpec.describe FieldsController, type: :controller do 

    let(:field) { create(:field) } 

    it 'should show field' do 
    get :show, id: field 
    expect(response.status).to eq(200) 
    end 
end 

,但我有一個錯誤

Failure/Error: get :show, id: field 

ArgumentError: 
    unknown keyword: id 

如何修理它?

回答

69

HTTP請求方法將只接受以下關鍵字參數 params, headers, env, xhr, format

根據新的API,你應該在這種情況下,使用關鍵字參數,params

it 'should show field' do 
    get :show, params: { id: field.id } 
    expect(response.status).to eq(200) 
    end 
+0

THX它的工作原理現在 – user

+6

我從Rails 4.2升級到Rails 5.1後出現此錯誤開始,並修正了這個問題 - 謝謝! –

+0

看起來它也接受格式: – kwerle