Варианты полного тестирования стека в Ruby on Rails - PullRequest
6 голосов
/ 01 октября 2010

Существует множество вариантов полного тестирования стека приложений Rails. Некоторые используют настоящие браузеры, некоторые без головы, некоторые вообще не запускают javascript.

Какие инструменты вы используете или рекомендуете и почему?

Список браузерных симуляторов или автоматов :

  • Встроенная поддержка Rails для интеграции и функциональных тестов (без JS)
  • Webrat
  • Webrat :: Селен
  • Селен
  • Скорость (через Culerity)
  • Watir
  • ...

Список тестирующих DSL и фреймворков :

  • Rails по умолчанию (утверждения, ...)
  • Shoulda
  • Огурцы
  • Capybara (унифицированная DSL для нескольких браузерных симуляторов)
  • ...

Ответы [ 4 ]

2 голосов
/ 18 октября 2010

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

Я не думаю, что браузерные симуляторы / автоматы нужны, если ваше приложение не достаточно тяжелое для JavaScript. Я бы порекомендовал использовать их только для тестирования javascript, и для этого определенно лучше использовать реальный браузер, чем моделировать. Приложение, над которым я сейчас работаю, довольно тяжело на JavaScript, и мы используем cucumber вместе с watir / firewatir для запуска наших тестов на огурцы в Firefox для функций, управляемых javascript на нашем сайте.

1 голос
/ 05 октября 2010

В проекте, над которым я сейчас работаю, для тестирования полного стека мы используем Cucumber с капибарой в качестве драйвера.

Внешний интерфейс очень тяжелый на javascript, я пробовал пару безголовых драйверов для браузера (capybara-envjs и akephalos), но оба они ошибочно провалили тесты, которые прошли в реальном браузере.

1 голос
/ 06 октября 2010

Я использую Cucumber + Capybara с комбинацией селен-вебдрайвера и драйвера для тестирования в стойке.Capybara делает хорошую работу, чтобы абстрагироваться от различий между тестами в браузере, которые приводятся в действие selenium-webdriver для теста, который может фактически проверить, работает ли JavaScript в браузере, но требует времени для запуска и тестирования, который просто работает на HTML, создаваемомконтроллер / действие, которое выполняется намного быстрее, но не тестирует JavaScript.Это означает, что один и тот же набор сценариев и определений шагов может быть запущен в браузере или нет без необходимости поддерживать дублированные наборы определений шагов.

1 голос
/ 03 октября 2010

За последние несколько лет я использовал кучу вещей в своей карьере в Rails.

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

Модульное тестирование:

  • Охват RSpec моделей, помощников, библиотек и контроллеров.Охват контроллера, как правило, имеет очень высокий уровень
  • Покрытие JSpec для проекта, в котором используется довольно передовое волшебство JS и HTML 5

Функциональное тестирование:

  • Огурец с использованием Capybara и Culerity (мы только что перевели из WebRat, чтобы получить покрытие JS-тяжелых интерфейсов от Cucumber)
  • Селен, который теперь является "наследием" и медленно мигрирует в огурец / капибару
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...