RSpec两次抛出错误,怎么回事?

时间:2014-07-11 12:42:36

标签: ruby-on-rails ruby unit-testing rspec unique

  it "is invalid with a duplicate email address" do
    User.create(name: 'Joe', surname: 'Tester', email: 'test2er@example.com', password: 'password123')
    user = User.new(name: 'Jane', surname: 'Tester', email: 'test2er@example.com', password: 'password123')
    user.valid?
    puts user.errors.full_messages
    expect(user).to have(1).errors_on(:email)
  end

是我的测试,当我运行它时,我得到expected 1 errors on :email, got 2user.errors.full_messages告诉我我得到了

Email has already been taken
Email has already been taken

所以这是一次错误两次,为什么会这样?

1 个答案:

答案 0 :(得分:0)

问题在于,在使用设计时无需验证电子邮件的唯一性。它已经有了这个验证,因此错误显示了两次。删除了我自己的验证并按预期填写了测试 - 有一个错误。