Как тестировать движки Rails 3 с помощью Cucumber и Rspec?

Прошу прощения, если этот вопрос немного субъективен ... Я пытаюсь выяснить, как лучше всего протестировать движки Rails 3 с помощью Cucumber & Rspec. Для тестирования двигателя необходимо приложение rails 3. Вот что я сейчас делаю:

  1. Добавьте тестовое приложение rails в корень драгоценного камня (myengine), выполнив: rails new / myengine / rails_app

  2. Добавьте огурец в / myengine / rails_app / features , как и в обычном приложении Rails

  3. Требовать гем Rails Engine (с использованием : path => "/ myengine" ) в / myengine / rails_app / Gemfile

  4. Добавьте спецификацию в корневой каталог гема: / myengine / spec

  5. Включите фикстуры в / 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)

У вас видите какие-нибудь проблемы с настройкой вот так? Тесты проходят нормально, но я немного не решаюсь поместить эти функции в приложение test rails. Изначально я попытался поместить функции в корень драгоценного камня и создал приложение test rails внутри features / support , но по какой-то причине мой движок не инициализировался, когда я запускал тесты, хотя я мог видеть приложение загружает все остальное при запуске cuc.

Если кто-то работает с Rails Engines и использует cuc и rspec для тестирования, мне было бы интересно услышать вашу настройку.

* * ОБНОВЛЕНИЕ
Я немного изменил свои настройки с тех пор, как написал этот вопрос. Я решил избавиться от каталога spec в корне движка. Теперь я просто создаю приложение rails с именем «test_app» и настраиваю cuc и rspec внутри этого приложения, как я обычно делал бы в приложении rails. Затем я добавляю драгоценный камень, как в шаге № 3 выше. Поскольку движок является вспомогательным приложением, я думаю, лучше всего протестировать его, как будто это обычное приложение для рельсов. Мне все еще интересно узнать, есть ли у кого-нибудь другие настройки.

19
задан Ryan Bigg 21 January 2011 в 20:04
поделиться