使用RSpec,是否有方法断言模型的特定属性是否无效?

使用RSpec,是否有方法断言模型的特定属性是否无效?,rspec,rspec-rails,Rspec,Rspec Rails,我是RSpec的新手,我有一个测试场景,其中我写道: my_object.should_not be_valid 它工作正常。但是,我想测试模型的特定属性是否无效。这是一种现成的RSpec行为吗?我可以写一些类似于: my_object.should_not be_valid(:name) my_object.should_not be_valid(:name => 1) 理想情况下,我也希望能够测试错误的数量,例如: my_object.should_not be_valid(:n

我是RSpec的新手,我有一个测试场景,其中我写道:

my_object.should_not be_valid
它工作正常。但是,我想测试模型的特定属性是否无效。这是一种现成的RSpec行为吗?我可以写一些类似于:

my_object.should_not be_valid(:name)
my_object.should_not be_valid(:name => 1)
理想情况下,我也希望能够测试错误的数量,例如:

my_object.should_not be_valid(:name)
my_object.should_not be_valid(:name => 1)
但现在这对我来说并不重要。

根据,你应该能够这样写:

describe Person do
  it "should validate presence of email" do
    person = Person.new(:email =>; nil)
    person.should_not be_valid
    person.should have(1).error_on(:email)
  end
end
或类似于以下内容,通过使用:


好啊第一部分是对我的问题的准确回答。你的第二个blocak很有信息量,也很有帮助。谢谢。只是附带说明一下:你提到的github回购协议已经过时了。这个fork()是最新的,也是作为gem()提供的。您还可以检查所有货叉: