2012-07-25 9 views
5

ヘルパーメソッドをテストするときにクッキーが設定されたことをテストする方法を理解できません。ヘルパー仕様でクッキーにアクセスするにはどうすればよいですか?

仮定ヘルパーメソッド:

def my_helper(k,v) 
    cookies[k] = v 
end 

テスト:

it 'should set cookies' do 
    helper.my_helper("foo", "bar") 
    helper.cookies["foo"].should == "bar" #nil 
    helper.response.cookies["foo"].should == "bar" #nil 
end 

誰もがこれを行う方法を知っていますか?私はレール3.2とRSpecの2.8によ

+0

http://stackoverflow.com/questions/5475989/rspec-setting-cookies-in- aヘルパーテスト ここでは、常にあなたの宿題をしてください! –

+0

私はその記事を見ました、OPが言及しているように、彼はまだ_get_クッキーの仕方がわかりません。 –

+0

rspecのドキュメントによると 'response.cookies [" foo "]'はうまくいくはずですが、私は3.2とrspec 2.8で動作しています。 https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs/cookies。私が知る限り、rspec、レール統合テスト、そしてこれを理解するのを困難にするラックの間には、何か変わったことがあると言えます。 – Dty

答えて

4

は、作品へ:

helper.stubs(:cookies => cookies = mock) 
cookies.expects(:[]=).with('foo', 'bar') 
helper.my_helper('foo', 'bar') 
0

要求

helper.request.cookies[:awesome] = "something" 
+0

これは私のためには機能しません。クッキーを設定するのではなく、そのクッキーを_get_しようとしています。 –

2

てクッキー。 rspec docs要求の仕様(すなわち、統合テスト)で私のために次の作品を言っているにもかかわらず。あなたが喜んでいる場合をCookieJarのための簡単なRSpecのモックを代入

it 'should set cookies' do 
    cookies['foo'] = 'bar' 
    visit "/" 
    cookies['foo'].should == 'bar' 
end 
+0

うん、私は間違いなく標準の要求仕様でクッキーをチェックした。 –

+0

@MattBakerどのバージョンのレールとrspecを使用していますか? – Dty

+0

@MattBakerここでは、rspecのクッキーを使って誰かがどのようにデバッグしたかについての記事もあります。この全体をトラブルシューティングする方法を理解するのに役立つかもしれません。 http://dobbse.net/thinair/2011/12/capybara-racktest-rspec-cookies-2of2.html – Dty

関連する問題