rspec (v2.8) の should_receive() と混乱しています
私の理解では、 stub() と同じようにメソッドをスタブ化し、このスタブ化されたメソッドが呼び出されるという期待を設定します。
ただし、それを使用してパーシャル ビューから呼び出されるヘルパー メソッドをスタブ化しようとすると、エラーが発生し続けました。
Failure/Error: render 'invitations/header'
ActionView::Template::Error:
undefined method `require_javascript' for #<#<Class:0x7fe21d03d9f8>:0x7fe21cfd0c40>
最後に、テストを成功させるために、stub() メソッドも追加する必要がありました。このコードを以下に示します。before ブロックを削除すると、上記のエラーが発生します。
describe 'invitation/header' do
before do
view.stub(:require_javascript) # Why is this required ?!
end
it "should initialize the expandable section javascript" do
view.should_receive(:require_javascript).with('expandable_section')
render 'invitations/header'
end
...
end
このファイルには他にも多くのテストがありますが、成功するために stub() メソッドを必要とするものはありません。なぜこの状況でそれが必要なのか混乱していますか?