Je suis en train de se moquer de la hachage de session pour un contrôleur comme ceci:rails rspec moqueurs hash session
it "finds using the session[:company_id]" do
session.should_receive(:[]).with(:company_id).and_return 100
Company.should_receive(:find).with(100)
get 'show'
end
Quand j'appelle get 'show' il déclare:
received :[] with unexpected arguments
expected: (:company_id)
got: ("flash")
Le code du contrôleur ressemble à:
def show
company_id = session[:company_id]
@company = Company.find params[company_id]
end
J'ai simplement essayé de placer
it "finds using the session[:company_id]" do
session[:company_id]= 100
Company.should_receive(:find).with(100)
get 'show'
end
mais obtenir un problème sur:
expected: (100)
got: (nil)
Quelqu'un a des idées pourquoi?
Voici ma réponse à cette question: http://stackoverflow.com/questions/8043956/rspec-2-7-access-controller-session-in-spec-before-making-request/13369734#13369734 –