使用默认的Rails测试套件,我如何编写仅测试某些验证的测试?例如,如果我有presence,numeric和我自己的验证器的验证,我该如何测试数字?
假设我没有数字验证工作,所以此测试应该失败:
test "should test numeric validator" do
post = Post.new(:number => 'not a number')
assert !post.save, "it saved a non-numeric value for :number"
end
但它会通过,因为我自己的验证器不允许它因某些其他原因而保存,所以我的测试没有真正测试。
答案 0 :(得分:4)
您可以断言特定字段的post.errors
哈希值,即:
assert_nil post.errors[:number], "it saved a non numeric value for :number"