1

初めてのRailsアプリのコードを書いていますが、バリデーションエラーを調べる最善の方法が見つからないようです。同じことを繰り返さずに簡単に入力できます。

私はこれを変えたい:

let(:error_messages) { page.find 'div#error_explanation ul' }
specify { error_messages.should have_content "Name can't be blank" }
specify { error_messages.should have_content "Email can't be blank" }
specify { error_messages.should have_content "Email is invalid" }
specify { error_messages.should have_content "Password can't be blank" }
specify { error_messages.should have_content "Password is too short (minimum is 6 characters)" }
specify { error_messages.should have_content "Email is invalid" }

このようなものに:

let(:error_messages) { page.find 'div#error_explanation ul' }
specify { error_messages.should have_content "errors.name_blank" }
specify { error_messages.should have_content "errors.email_blank" }
specify { error_messages.should have_content "errors.email_invalid" }
specify { error_messages.should have_content "errors.password_invalid" }
specify { error_messages.should have_content "errors.password_short" }
specify { error_messages.should have_content "errors.email_invalid" }

ありがとう!

4

1 に答える 1

1

モデルの検証をすでにテストしていますか? もしそうなら、お詫びします。

それ以外の場合は、errors_on ヘルパーを使用してモデル自体をテストすることを検討する必要があります。これについては、rspec のレリッシュ ページ を参照してください。このアプローチは、実行が高速で、マークアップが変更されたときの脆弱性が少なくなります。

describe ValidatingWidget do
  it "fails validation with no name (using error_on)" do
    ValidatingWidget.new.should have(1).error_on(:name)
  end
end
于 2012-10-23T22:07:31.713 に答える