2014年3月28日金曜日

rails4 Rspec ApplicationControllerのテスト

環境

  • 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 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...