Как использовать контрольные точки для тестирования полиморфной привязки?
Я использую toa-matchers с рельсами, и я создаю модель под названием "комментарии" и другую модель под названием "post". Комментарии являются полиморфными.
Когда я тестирую с помощью сота-помощников в post, подобном этому
it {should have_many(:comments)}
он получает это сообщение
Ожидаемое сообщение, чтобы иметь has_many ассоциация называется комментариями (Комментарий не имеет внешнего ключа post_id.)
В моей модели комментариев у меня есть
belongs_to :commentable, :polymorphic => true
Как я могу проверить свою полиморфную связь, чтобы сообщение могло иметь много комментариев?
p.s. в документации сопутствующего устройства указывается, что он поддерживает полиморфные ассоциации.
Ответы
Ответ 1
Вам не нужно ничего делать в своем тесте для should
, он должен просто работать. В своей модели сообщения убедитесь, что вы установили параметр :as
:
has_many :comments, :as => :commentable
Это обеспечит правильное использование имен столбцов commentable_id
и commentable_type
, а не post_id
.