#ruby-on-rails #ruby #rspec
#ruby-on-rails #ruby #rspec
Вопрос:
На моей работе у нас есть несколько проектов rails с аналогичной функциональностью. Мы переработали некоторые общие функциональные возможности в gem, который включен во все проекты.
Gem — это просто еще один проект rails, предоставляющий модели, контроллеры и представления для добавления в проекты, которые его включают.
Как мне протестировать gem? Мне не ясно, как протестировать это независимо, но не имеет смысла писать тесты gem в проектах, которые его включают.
Ответ №1:
У вас должны быть тесты в самом проекте gem.
В качестве примера вы можете видеть, что cancancan имеет структуру каталогов, аналогичную всем другим проектам rails, с папкой ‘spec’ корневого уровня.
Возможно, вам придется использовать rspec вместо rspec-rails в зависимости от настроек вашего gem, но здесь нет никакого настоящего волшебного соуса. Вы должны написать тесты, которые охватывают функциональность самого gem, в кодовой базе gem. Но вы не должны писать тесты для gem в проектах, которые его включают. Или, по крайней мере, не больше, чем вы могли бы для других драгоценных камней (так что может быть какое-то издевательство / проверка / построение интерфейса, но прямого тестирования драгоценного камня нет).