37 votes

Rspec : test de l'attribution d'une variable d'instance

En utilisant Rspec avec Factory Girl. J'essaie de vérifier quelles données sont assignées dans mon contrôleur (et de les tester). Chaque article que j'ai lu dit que je devrais pouvoir obtenir quelque chose de assigns() mais cela renvoie toujours nill

Contrôleur

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

Spec

it "devrait assigner stickies" do
  foo = assigns(:stickies)
  puts "foo = #{foo}"
end

Sortie

foo = 

Suis-je en train d'utiliser la mauvaise syntaxe? Y a-t-il une meilleure façon de faire cela? Merci!!

88voto

David Chelimsky Points 6430

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

14voto

Calin Points 1217

Si vous utilisez le rspec > 2.99, vous pouvez utiliser:

expect(assigns(:stickies)).not_to be_nil

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X