そこで、Rails のテスト状況を調査することにしました。ここでいくつかの受け入れられた回答を読んだ後、Railsのテストドキュメントがいかにひどいものであるかについて話しているので、私は同意し始めています。これまでのところ、私はどうやら Rails のテストを理解している人ではないようです。フレームワークについては十分に理解しているのですが、そう思っていました。
Shoulda は使用するのに適したプラグインであると読んだので、使用しています。私の最初のテスト:「メソッドに ID パラメーターが必要であることを確認する」...うーん、これは理にかなっていると確信しています。コントローラーの before_filter :validate_id が実際に機能することを確認したいと思います。これは、インデックスの GET が想定どおりに機能することをテストするために必要な 3 つのステップのうちの 1 つです。不合格!明らかに、テスト環境は通常の Rails スタックとは異なる方法で実行されます。
...
lib/action_controller/base.rb:524:in `process_without_filters'
...
ActionController::TestCase が get {} を使用している場合、フィルターを含めることに関する情報はほとんど得られません。これを理解するには、どこで「Rails テスターのクラブ」に参加すればよいですか?
context "GET :index requires id" do
setup {
get :index
}
should_redirect_to('/') { }
end