问题
I have simple action show
def show
@field = Field.find_by(params[:id])
end
and i want write spec for it
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
but I have got an error
Failure/Error: get :show, id: field
ArgumentError:
unknown keyword: id
How to fix it?
回答1:
HTTP request methods will accept only the following keyword arguments
params, headers, env, xhr, format
According to the new API, you should use keyword arguments, params in this case:
it 'should show field' do
get :show, params: { id: field.id }
expect(response.status).to eq(200)
end
来源:https://stackoverflow.com/questions/43797133/controller-spec-unknown-keyword-id