Rspec тестирование Rails gem

#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 в проектах, которые его включают. Или, по крайней мере, не больше, чем вы могли бы для других драгоценных камней (так что может быть какое-то издевательство / проверка / построение интерфейса, но прямого тестирования драгоценного камня нет).