В модели рекурсивных рельсов у меня есть подтверждение, что модель не может ссылаться на себя:
validates :parent_entity, exclusion: { in: ->(entity) { [entity] } }
Это успешно, и установлена ошибка исключения с правильным сообщением. Я могу подтвердить это через консоль rails.
В тесте Rspe c я хочу проверить, добавлена ли соответствующая ошибка исключения:
it 'parent_entity cannot be same entity as child_entity' do
@child_entity1.parent_entity = @child_entity1
@child_entity1.valid?
expect(@child_entity1.errors.added?(:parent_entity, :exclusion)).to be_truthy
end
В ходе теста не возвращается значение false. ожидание.
Предыдущий подход работает безупречно, например, для пустых ошибок, но не с исключением. Если я заменил ': exclusion' в тесте с исправленным сообщением об ошибке 'зарезервировано', я смогу заставить его работать, но это не то, что я хочу и должен делать.