テストの作成に取り組んでいますが、form_forからのモデルの作成がテストで失敗するのに、実際のブラウザーでは機能する理由がわかりません。モデル作成の問題点を簡単に確認する方法はありますか?
さらに良いのは、error_messages_forを介してアクセスするエラー出力をテストする簡単な方法はありますか?その場合、不正な形式のフォームが正しいエラーを出力していることを確認するテストも追加したいと思います。
テストの作成に取り組んでいますが、form_forからのモデルの作成がテストで失敗するのに、実際のブラウザーでは機能する理由がわかりません。モデル作成の問題点を簡単に確認する方法はありますか?
さらに良いのは、error_messages_forを介してアクセスするエラー出力をテストする簡単な方法はありますか?その場合、不正な形式のフォームが正しいエラーを出力していることを確認するテストも追加したいと思います。
を使用して、オブジェクトの検証エラーにアクセスできます@model.errors
。@model.errors.on(:field_name)
特定のフィールドに適用されるエラーメッセージの配列を取得するために使用します。テストで使用@model.errors.invalid?(:field_name)
して、特定のフィールドでエラーがトリガーされたことを表明することもできます。
例えば:
test "should reject invalid post" do
@p = Post.new
assert !@p.valid?
assert_equal @p.errors.on(:title), 'cannot be blank'
end