2016-03-16 1 views
0

У меня есть отношения has_many, которые должны иметь хотя бы одну запись. Если записей нет, это недействительно.Как проверить, что я проверяю, что отношения имеют хотя бы одну запись в RSpec?

Как проверить эту проверку в RSpec?

Ближе всего я получил it { should validate_length_of(:fees).is_at_least(1) }, но это предназначено для строк и не будет работать.

ответ

1

при условии, что у вас есть экземпляр вашего класса, как 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 
+0

Так что нет никакого RSpec matchers для этого сценария. Ну что ж. – RonLugge

0

Если у вас есть has_many книги отношения пользователей. Пользователя устанавливаются на объект пользователя

it { user.books.count.should be >= 1 } 

с ожидать в RSpec

it { expect(user.books.count).to be >= 1 }