カテゴリー:
Rails
タグ:
 テスト Rails4 StrongParameters

このエントリーをはてなブックマークに追加
更新日時:
2013年09月12日(木)
作成日時:
2013年09月12日(木)

前の記事 / 次の記事

模索中だけど、Rspecでホワイトボックステストするとして、

全ての値が通ることを確認

it "必要なパラメーターは全て受け取ることができる" do
  valid_attributes = 
    ActionController::Parameters.new(article: {title: "Today's events.", content: "Nothing to say."})
  controller.stub(:params).and_return(valid_attributes)
  expect(controller.send:article_params).to eq valid_attributes
end

特定の値が通らないことを確認

it "user_id は破棄される" do
  invalid_attributes =  ActionController::Parameters.new( article: { user_id: 1 })
  controller.stub(:params).and_return(invalid_attributes)
  expect(controller.send(:article_params)[:user_id]).to be_nil
end

特定の値が通ることを確認

it "title は破棄されない" do
  valid_attributes =  ActionController::Parameters.new( article: { titile: "Today's events." })
  controller.stub(:params).and_return(valid_attributes)
  expect(controller.send(:article_params)[:title]).to eq be_true
end

params はただのハッシュではないので、
ActionController::Parameters.new で値をつくるのがポイント。