摘要:单元测试失败告诉我哪个断言(文件:行)失败,但没有哪个验证导致失败。
更多信息:我的一个模特中有11个验证。无论我运行rake test:units --trace
还是ruby -Itest test/unit/mymodel_test.rb
,单元测试都很棒。然而,尽管它确切地告诉我哪个assert
失败了,但我没有被告知哪个验证失败了。我必须遗漏一些明显的东西,因为我不能很好地向Google提出这个问题以获得答案。
谢谢:)
答案 0 :(得分:7)
我认为你想要的是这个:
assert person.valid?, person.errors.full_messages.inspect
如果人物模型无效,则会打印出错误消息供您查看。
答案 1 :(得分:4)
要打印一个或多个失败的验证,请使用以下测试:
test "post with neither name nor title" do
p = Post.new
assert p.valid?, p.errors.full_messages.inspect
end
答案 2 :(得分:2)
您可以随时查看无效属性的对象错误。
class Person
validates_presence_of :name
end
person = Person.new
person.valid? # => false
person.errors[:name] # => "can't be blank"
person.errors.full_messages # => ["Name can't be blank"]
请查看ActiveRecord::Errors文档以获取更多信息。