rspec рельсы имитирует хэш сеанса

Я пытаюсь имитировать хэш сеанса для контроллера следующим образом:

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

Когда я вызываю get 'show', он сообщает:

received :[] with unexpected arguments  
expected: (:company_id)  
   got: ("flash")

Код контроллера выглядит так:

def show
  company_id = session[:company_id]
  @company = Company.find params[company_id]
end

Я также просто попытался установить

it "finds using the session[:company_id]" do
  session[:company_id]= 100
  Company.should_receive(:find).with(100)
  get 'show'
end

, но затем возникает проблема:

expected: (100)
got: (nil)

У кого-то есть идеи, почему?

8
задан iltempo 29 July 2012 в 14:20
поделиться