【发布时间】:2016-03-17 19:45:05
【问题描述】:
我有一个 has_many 关系,应该总是至少有一个条目。如果没有任何条目,则无效。
如何在 RSpec 中测试该验证?
我得到的最接近的是it { should validate_length_of(:fees).is_at_least(1) },但这是为字符串设计的,无法使用。
【问题讨论】:
标签: ruby-on-rails rspec rspec-rails
我有一个 has_many 关系,应该总是至少有一个条目。如果没有任何条目,则无效。
如何在 RSpec 中测试该验证?
我得到的最接近的是it { should validate_length_of(:fees).is_at_least(1) },但这是为字符串设计的,无法使用。
【问题讨论】:
标签: ruby-on-rails rspec rspec-rails
假设你有一个像 described_class_object 这样的类的实例,你可以这样做:
context 'when there are no fees' do
it 'is not valid' do
described_class_object = described_class.build(...some params...)
described_class_object.fees = []
expect(described_class_object).to_not be_valid
end
end
【讨论】:
如果你有一个用户 has_many books 关系。 用户被设置为用户对象
it { user.books.count.should be >= 1 }
期望在 rspec 中
it { expect(user.books.count).to be >= 1 }
【讨论】: