環境
- rails(ruby2.1.0, rails4.0.3)
railsでApplicationControllerにauthenticate_user!のようなメソッドを用意して、ユーザーログインの有無を判定することがよくあります。
このような処理をrspecを使ってテストを行う場合、スタブを使う必要があります。
example
describe TestController do before(:each) do ApplicationController.any_instance.stub(:authenticate_user!).and_return(true) end // something end
上記のように実装することで、authenticate_user!のメソッドでtrueを返すことができるようになります。
stubメソッドでメソッドスタブを作成し、and_returnでtrueを返すようにしています。
stubは便利な機能ですが、何でもかんでもstubにすると試験の意味がなるくなるので注意して使いましょう。
参考にした本
0 件のコメント:
コメントを投稿