0

私はRspecを学んでいます。メール検証のテスト ケースを実行すると、理解できないエラーが表示されます。説明してください。

  1) User should check for email validation
     Failure/Error: @test_user.should have(1).errors_on(:email)
       expected 1 errors on :email, got 2
     # ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'

Finished in 0.12903 seconds
2 examples, 1 failure

私のテストケースは以下のとおりです。

  it"should check whether name is present or not" do
    @test_user.name = nil
    @test_user.should have(1).errors_on(:name)
  end

  it "should check for email validation"do
    @test_user.email = nil
    @test_user.should have(2).errors_on(:email)
  end
end
4

1 に答える 1

1

プレゼンス バリデータとある種のフォーマット バリデータの両方で email 属性を検証している場合、属性を nil に設定すると 2 つのエラーが発生します。

多分次のようなものを試してください:

validates :email, presence: true, 
                  format: { with: %r\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/,
                            allow_nil: true  }
于 2012-05-23T19:28:49.273 に答える