Я прошу прощения, если этот вопрос слегка субъективен... Я пытаюсь выяснить, как лучше протестировать Rails 3 Engines с Cucumber и Rspec. Чтобы проверить двигатель, необходимо использовать рельсы 3. Вот что я сейчас делаю:
-
Добавьте приложение проверки rails к корню gem (myengine), запустив:
rails new /myengine/rails_app
-
Добавьте Cucumber в
/myengine/rails_app/features
, как в обычном приложении Rails -
Требовать Gem для Rails Engine (используя
:path=>"/myengine"
) в/myengine/rails_app/Gemfile
-
Добавить спецификацию в корневой каталог драгоценного камня:
/myengine/spec
-
Включите приборы в
/myengine/spec/fixtures
и добавьте следующее к моему cuc env.rb:
env.rb:
Fixtures.reset_cache
fixtures_folder = File.join(Rails.root, 'spec', 'fixtures')
fixtures = Dir[File.join(fixtures_folder, '*.yml')].map {|f| File.basename(f, '.yml') }
Fixtures.create_fixtures(fixtures_folder, fixtures)
Вы видите какие-либо проблемы с настройкой этого? Тесты проходят нормально, но я немного нерешительно помещаю функции внутри тестового рельса. Первоначально я попытался поместить функции в корень жемчужины, и я создал приложение тестовых рельсов внутри features/support
, но по какой-то причине мой движок не инициализировался при запуске тестов, хотя я мог видеть, как приложение загружает все остальное, когда cuc побежал.
Если кто-то работает с Rails Engines и использует cuc и rspec для тестирования, мне было бы интересно услышать вашу настройку.
* * UPDATE
Я немного изменил настройки, так как написал этот вопрос. Я решил избавиться от каталога спецификаций под корнем движка. Теперь я просто создаю приложение rails с именем "test_app" и настрою cuc и rspec внутри этого приложения, как обычно, в приложении rails. Затем я включаю драгоценный камень, как я сделал в шаге № 3 выше. Поскольку движок является суб-приложением, я думаю, его просто лучше проверить, как это было обычное приложение для рельсов. Меня все еще интересует, есть ли у кого-то другая настройка.