On Mon, Feb 6, 2012 at 12:16 AM, edward michaels <[email protected]> wrote:

> Hi all,
>
> I'm trying to test that my users show page renders.  The resource has
> the route /users/:id
>
> How would I code that for an Rspec test?  So far I've tried these four
> ways:
>
> it "should have a users show path" do
>  get user_path(:action => 'show')
> 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?

HTH,

Peter

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to