37

Using Rspec with Factory Girl. Trying to check out what data is being assigned in my controller (and test against it). Every post I've read says I should be able to get something out of assigns() but it keeps returning nill

Controller

def index
 @stickies = Sticky.where(:user_id => current_user.id)
end

Spec

it "should assign stickies" do
  foo = assigns(:stickies)
  puts "foo = #{foo}"
end

Output

foo = 

Am I using the wrong syntax? Is there a better way to do this? Thanks!!

2 Answers 2

89

You have to invoke the action first


describe StickiesController do
  describe "GET index" do
    it "should assign stickies" do
      get :index
      assigns(:stickies).should_not be_nil
    end
  end
end
Sign up to request clarification or add additional context in comments.

2 Comments

One of my more bone-headed moves. Thanks, David. ;)
There is no such thing as a bone-headed move.
16

If you are using the rspec > 2.99 you can use:

expect(assigns(:stickies)).not_to be_nil

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.