[RSpec] ビューのヘルパメソッドをスタブ化する

RailsのビューのスペックをRSpecを使って書いているときに、ビューが呼び出しているヘルパーメソッドをスタブ化する方法を調べました。念のためメモ。

ビューのテストの独立性を高めるために、ヘルパーメソッドはスタブ化しておいたほうがいいかなーと。

ちなみに、当方の環境はRSpec(2.9.0) + Rails 3.2.1です。

方法

ビューのスペック内で、viewオブジェクトのstubメソッドを呼び出せば良いです。

以下の例では、「current_user」というヘルパーメソッドをスタブ化して、必ず特定のuserオブジェクトを返すように設定しています。

補足

参考にさせていただいた以下の記事では、viewオブジェクトではなくtemplateオブジェクトのstubメソッドを呼び出すことで同様の機能を実現していました。

ただこの方法だと、RSpec実行時に以下のような警告が発生。

APIが変わったんですね。なのでこれからはviewオブジェクトを使うのがよいのではないかと思います。

ではではー。