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 的 relish pages中所述。当标记发生变化时,这种方法执行起来会更快,并且不会那么脆弱。

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 回答