Тестирование интеграции с Rails - PullRequest
6 голосов
/ 27 декабря 2010

Я собираюсь настроить несколько интеграционных тестов для уже созданного приложения на Rails 3.Приложение построено на Rails 3 и Ruby 1.9.2.Я видел рекомендации для Capybara, Cucumber и RSpec 2, но я не уверен в преимуществах каждого из них.

Я также заметил, что они тесно связаны друг с другом.Пост, который я видел, всегда говорит об использовании Capybara с Cucumber или об Rspec с Cucumber.

Каковы преимущества / недостатки каждого из них?Существуют ли определенные комбинации, которые лучше всего работают вместе?

Ответы [ 2 ]

13 голосов
/ 28 декабря 2010

Все эти инструменты тестирования находятся в разных частях среды тестирования.

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

Capybara Миссия - это «альтернатива webrat, целью которой является поддержка всех браузерных симуляторов».Поэтому для имитации части браузера (http-запрос, манипулирование DOM и т. Д.) У вас есть две альтернативы Webrat или Capybara.Огурец прекрасно сочетается с ними обоими.Фактически он определяет, какой из них вы установили в своей системе, и по умолчанию использует его.

С другой стороны Rspec .Rspec - это не инструмент для тестирования интеграции, а для модульного тестирования (с подходом BDD).В http://www.pragprog.com/titles/achbd/the-rspec-book это объясняется очень четко.Cucumber находится во внешнем круге поведения приложения, а rspec - во внутреннем круге поведения класса.Альтернативой rspec является классический Test :: Unit классы.

Для получения дополнительной информации см .:

0 голосов
/ 19 марта 2013

В итоге, используйте все три .

Использование RSpec ...

  • ... для тестирования методов в ваших моделях, контроллерах и помощниках в отдельности.
  • Также известен как модульное тестирование.

Использование Огурец ...

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

Используйте Капибара с огурцом ...

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