В настоящее время с rspec-rails (2.14.2) я проверяю свои ассоциации в спецификациях модели с помощью драгоценного камня shoulda (3.5.0) следующим образом:
# app/models/user.rb
class User < ActiveRecord::Base
belongs_to :school
end
# spec/models/user_spec.rb
describe User do
it { should belong_to :school }
end
После некоторых исследований я уперся в стену, пытаясь заставить работать утверждения, связанные с ассоциациями (похоже, все они терпят неудачу).
Сообщение об ошибке:
1) User
Failure/Error: it { is_expected.to belong_to :school }
NoMethodError:
undefined method `belong_to' for #<RSpec::ExampleGroups::School:0x007f8a4c7a68d0>
# ./spec/models/user.rb:4:in `block (2 levels) in <top (required)>'
Итак, мои вопросы:
- Можете ли вы проверить ассоциации без драгоценного камня? Это кажется невозможным, исходя из того, что я видел с синтаксисом «ожидания».
- Не работает ли гем shoulda с rspec 3.0.1 для всех? Есть ли обходной путь?
gem 'shoulda-matchers'
в Gemfile? - person zishe   schedule 04.06.2014belongs_to :school
(школа уникальна). Возможно, это источник проблемы - person gotva   schedule 04.06.2014