Rspecでbefore_actionなどをテストするときはAnonymousControllerを使うと便利
ApplicationControllerなどにすべてのControllerで読み込まれるbefore_actionなどを定義していて、そのbefore_actionをテストをしたいときは、AnonymousControllerを使うと便利です。
anonymous controller - Controller specs - RSpec Rails - RSpec - Relish
ようは、テストだけにつかうコントローラとアクションをテストの度に作って、before_actionなんかの振る舞いをテストできるわけです。
describe ApplicationController do controller do def index end end end
これで、おわり。Annonymousコントローラのindexアクションがこれでできあがり。
最初、ルート設定が必要なのかなと思っていたけど、特に必要ないっぽい。
使いどころとしては、ApplicationControllerなので通常アクションを持たせないけどbefore_actionはここに書いている、っていうよくあるパターン。before_actionのテストをどこで書くのさ、となったときに他の特定の機能を持たせているコントローラに書くと、なにかそのコントローラに特有のテストのようになってしまうし、テストの条件が偏る。
要は、ApplicationControllerに定義した機能はApplicationControllerでテストしたほうがわかりやすいので、AnonymousController超便利ってことです。