Как создать фиктивное приложение внутри уже существующего движка rails

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

Тестировать приложение rails 4 было достаточно легко, но как только я приступил к тестированию движка, я упал в тупик. После тщательной проверки я обнаружил, что большинство людей используют такой подход (http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl), но во всех этих ответах я заметил, что люди создавали эти приложения с нуля и, таким образом, автоматически создавали для них фиктивное приложение. У меня нет возможности создавать все с нуля, и мне приходится работать с тем, что мне дали, ну и что?

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


person Austintacious1    schedule 06.05.2014    source источник
comment
вы можете вставить spec/dummy любое приложение, это просто точка монтирования для вашего движка, просто создайте rails new test_app и скопируйте test_app в фиктивную папку.   -  person Зелёный    schedule 06.05.2014
comment
Зачем вообще вам это приложение-пустышка? не можете ли вы протестировать движок с помощью основного приложения?   -  person Jwan622    schedule 17.08.2016


Ответы (1)


Учитывая, что фиктивное приложение не должно быть привязано к родительскому гему, за исключением некоторых расплывчатых имен, это может сделать это:

cd some_path_where_your_engine_IS_NOT
rails plugin new YOUR_ENGINE_NAME --mountable --dummy-path=spec/dummy --skip-test-unit
mv YOUR_ENGINE_NAME/spec/dummy /real/path/to/YOUR_ENGINE_NAME/spec
rm -rf YOUR_ENGINE_NAME  # cleanup useless cruft

Кроме того, вас может заинтересовать этот ответ, чтобы сгенерировать приложение с той же версией рельсов.

person Lloeki    schedule 07.05.2014
comment
Укажите версию Rails, используя _VERSION_ в качестве первого параметра команды rails. Например, чтобы использовать Rails 5.0.1: rails _5.0.1_ plugin new YOUR_ENGINE_NAME --mountable --dummy-path=spec/dummy --skip-test-unit - person Eliot Sykes; 10.11.2016