Как можно протестировать приложение Rails?
Тщательно, нацеленность на Восемьдесят процентов покрытия и не менее !
Фактическое решение относительно того, «как» легко, но «сколько» может быть трудным для ответа.
У меня есть пара небольших (почти, но не совсем старых) проектов, в которых тестов почти нет, и тесты, как правило, представляют собой низкоуровневые модульные тесты важных компонентов в коде. Иногда мне бы хотелось, чтобы у них было больше тестов, но в целом их объединяют с довольно небольшими площадями, что делает отладку и ручное тестирование довольно простыми.
В своей повседневной работе мы используем rSpec, Cucumber и Selenium в довольно большом проекте Rails (более 10 разработчиков, несколько лет в разработке).
rSpec обеспечивает покрытие единиц измерения для всех наших моделей, контроллеров, помощников и других классов.
Cucumber предоставляет функциональные и интеграционные тесты более высокого уровня.
Селен используется для изучения javascript-интенсивных областей нашего пользовательского интерфейса с помощью javascript (проходящего через Capybara и Cucumber). У нас также есть набор регрессионных тестов в Selenium, используемых нашей командой Test and QA (версии, выпущенные для QA, подсвечиваются зеленым цветом в нашей сборке CI).
Моей «минимальной» настройкой в эти дни было бы покрытие на уровне объекта с использованием rSpec в критических и / или сложных областях и полный набор функциональных тестов Cucumber на критических путях через приложение.