Rails测试 - 如何测试特定的验证?

时间:2012-01-18 01:26:45

标签: ruby-on-rails unit-testing

使用默认的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

但它会通过,因为我自己的验证器不允许它因某些其他原因而保存,所以我的测试没有真正测试。

1 个答案:

答案 0 :(得分:4)

您可以断言特定字段的post.errors哈希值,即:

assert_nil post.errors[:number], "it saved a non numeric value for :number"