web-dev-qa-db-fra.com

Rspec: tester l'affectation de la variable d'instance

Utilisation de Rspec avec Factory Girl. Essayer de vérifier quelles données sont attribuées dans mon contrôleur (et de les tester). Chaque message que j'ai lu dit que je devrais être en mesure de retirer quelque chose des assigns () mais cela revient sans cesse

Manette

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

Spec

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

Production

foo = 

Suis-je en train d'utiliser la mauvaise syntaxe? Y a-t-il une meilleure manière de faire cela? Merci!!

37
jmccartie

Vous devez d'abord invoquer l'action


describe StickiesController do
  describe "GET index" do
    it "should assign stickies" do
      get :index
      assigns(:stickies).should_not be_nil
    end
  end
end
88
David Chelimsky

Si vous utilisez la rspec> 2,99, vous pouvez utiliser:

expect(assigns(:stickies)).not_to be_nil

14
Calin