On Mon, Feb 6, 2012 at 12:16 AM, edward michaels [email protected]
wrote:
end
it “should have a users show path” do
get user_show_path
end
it “should have a users show path” do
get user_path(:id => ‘1’)
end
This variant worked on my side:
…/spec/requests$ vim orders_spec.rb
describe “Orders” do
…
describe “GET /order/id” do
it “routes to a show order” do
get order_path(:id => “abc123”)
response.status.should be(200)
end
end
Passes when that order is in the test db and fails with
ActiveRecord::RecordNotFound when I change
the id to a non-present value, so that seems correct.
I have the record in the test db at the time of executing
this test.
But I keep getting a RoutingError from Rspec even though it renders ok
when I just go to the page. So how would I spec it? Thanks
Maybe just try to log the result of
user_path(:id => ‘1’)
user_path(:id => 1)
in your controller, to see what it gives there?
In the controller under test I added:
Rails.logger.debug order_path(:id => ‘adsfadf1’)
and this yields in the log:
/orders/adsfadf1
Do the standard request tests that are built by rspec-rails
in the spec/requests/ directory upon rails g scaffold function
correctly?
Thanks, you don’t declare the restful routes in your controller
though, right? The error that I’m getting specifies that there is no
‘show’ action like this:
ActionController::RoutingError:
No route matches {:controller=>"users", :action=>"users/1"}
So it’s looking for a ‘users/1’ action but of course it’s not going to
find it in the controller.