次のように、コントローラーのセッションハッシュをモックアウトしようとしています:
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)
誰にも理由がありますか?