rspecでコントローラのテストを書くときのTips
モジュールがインクルードされているか
it "should include AuthenticatedSystem" do controller.class.included_modules.should include(AuthenticatedSystem) end
隠したいパラメータがフィルターされているか
it "should filter credit_cards" do controller.send(:filter_parameters, 'credit_card' => 'nogood')\ ['credit_card'].should == '[FILTERED]' end
Before filters
it "should have a before_filter for login_required" do controller.class.before_filters.should include( :login_required ) end
レスポンスコード
it "should return 200 success" do response.code.should == '200' end
authenticity_tokenのチェックをスタブでtrueにする
controller.stub!(:valid_authenticity_token).and_return(true) controller.stub!(:verify_authenticity_token).and_return(true)
Filtered parameters