Controller spec unknown keyword: id
Ruby on-RailsRubyRspecRuby on-Rails-5Rspec RailsRuby on-Rails Problem Overview
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?
Ruby on-Rails Solutions
Solution 1 - Ruby on-Rails
> 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