I have a controller that expects a parameter called controller
and the RSpec test I wrote doesn't seem to like the fact that I'm passing in it as a parameter with get
.
require 'spec_helper'
describe PageHelpsController do
describe 'GET :search' do
it "returns" do
get :search, { :controller => 'employer', :action => 'edit', :edition => 'usa', :anchor => 'collaborator' }
response.status.should be_success
response.should render_template(:partial => 'shared/page_help')
end
end
end
vagrant@debian-squeeze64:/vagrant$ bundle exec rspec spec/controllers/page_helps_controller_spec.rb
F
Failures:
1) PageHelpsController GET :search returns
Failure/Error: Unable to find /vagrant/spec/controllers/page_helps_controller_spec.rb to read failed line
ActionController::RoutingError:
No route matches {:controller=>"employer", :action=>"search", :relative_url_root=>nil, :edition=>"usa"}
# ./spec/controllers/page_helps_controller_spec.rb:11
I'm going to take a shot at this question assuming you created a parameter named controller
.
The problem is you are confusing Rails by creating a parameter called controller
. It's assuming there is a controller called Employer
which of course doesn't exist. That is why you are receiving the route error. To solve this, you will have to change the parameter named controller
to something else.