2015-03-01 2 views
2

У меня есть приложение для рельсов, и я пытаюсь разбить код на несколько движков.Как проверить двигатель Rails, который зависит от его хостинга?

Основное применение Вмещает один главный контроллер - Api::ApplicationController, и все контроллеры в двигателях наследоваться от этого контроллера, например:

Api::Products::ProductsController < Api::ApplicationController 

Я использую RSpec для тестирования.

При запуске приложения все работает просто отлично, но когда я пытаюсь запустить Rspecs двигателя, я получаю сообщение об ошибке:

uninitialized constant Api::ApplicationController 

Как вы понимаете, двигатель не может работать отдельно от приложения, так что я попытался заглушить Api::ApplicationController внутри spec (products_controller_spec.rb), но он терпит неудачу, прежде чем он даже начнет запускать спецификацию.

Я подумал, что, может быть, мне следует реализовать его по-другому, и вместо этого наследуйте от него функциональность ApplicationController, а я не знаю, где.

Еще одна вещь, которую я рассматривал, заключается в том, чтобы впрыскивать спецификации двигателя в приложение-хостинг и запускать его оттуда, но, похоже, он не работает, и отлаживать спецификации таким образом невозможно.

Как я могу проверить его?

ответ

0

Рельсы Двигатели создают небольшие фиктивные приложения для целей тестирования. Вам нужно создать минимальное приложение, в котором есть функции, необходимые для тестирования вашего приложения, и он будет использовать его для запуска своих спецификаций.

Смотрите здесь:

http://edgeguides.rubyonrails.org/engines.html#testing-an-engine

Лучшее решение для этого случая, я думаю, это поставить общий код приложения, что все двигатели доля как модули в общем драгоценный камень, что все двигатели могут включать в себя.

Смежные вопросы