カテゴリー:
Rails
タグ:
 Rails テスト バリデーション

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

前の記事 / 次の記事

Railsでバリデーションをテストするのに、Rspecで書くとして

# 必ずしも"name"でエラーが発生しているとは限らない
it "必須項目であること" do
  object.name = nil
  expect(object).not_to be_valid
 end

# 必ずしも presence でエラーが発生しているとは限らない
it "必須項目であること" do
  object.name = nil
  expect(object).to have(1).errors
 end

なので、

it "必須項目であること" do
  object.name = nil
  expect(object.errors.added?(:name, :empty)).to be_true
 end

とかするのがいいような気もしつつそこまでする必要はない気がしつつ。