rspecでコントローラのテストを書くときのTips

2011年10月20日

モジュールがインクルードされているか

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