Ruby on Rails Saturday, April 26, 2014



On Saturday, April 26, 2014 4:09:15 PM UTC+1, Ruby-Forum.com User wrote:
How do I test this in Rspec. I am pretty very new to Rspec. Please help.
I tried like the below

    describe "next " do
      it "routes /queues/:queue_id/next" do
        { :get => "/queues/regular_queue/next" }.should route_to(
          :controller => "queue_items",
          :action => "next",
          :queue_id => "regular_queue",
          :format => "json"
            )
        assigns(:queue).should_not be_nil
        expect(response).to be_success
      end

But it is not at all coming inside my next action in controller.



What you've written there is a routing spec - it's just testing that your routes file maps that path to the correct controller/action. It's not making a request at all. For that you want a controller spec (these should be in spec/controllers/ for rspec to detect this as a controller spec. You'd want something along these lines

describe QueueItemsController do
  describe 'GET next' do
    it 'should assign queue' do
      get :next
      assigns(:queue).should == 'Regular'
    end
  end
end

Fred

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/8ef5bfc9-bfbc-44e8-a9be-822920b90a21%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment