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

Ruby on rails Rails测试-如何测试特定的验证?,ruby-on-rails,unit-testing,Ruby On Rails,Unit Testing,使用默认的Rails测试套件,我如何编写只测试某些验证的测试?例如,如果我对状态、数值和我自己的验证器进行了验证,那么如何测试数值 假设我没有进行数值验证,因此此测试应该失败: 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

使用默认的Rails测试套件,我如何编写只测试某些验证的测试?例如,如果我对状态、数值和我自己的验证器进行了验证,那么如何测试数值

假设我没有进行数值验证,因此此测试应该失败:

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

但是它会通过,因为我自己的验证器由于其他原因不允许保存,所以我的测试没有真正正确地进行测试。

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

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