Как начать с тестирования приложения на Rails? - PullRequest
9 голосов
/ 21 марта 2011

Я хотел бы написать несколько автоматических тестов для моего приложения на Rails 3.

Интересно, с чего начать.

Я слышал о Selenium / RSpec / Cucumber, и я думаю, что есть еще много вариантов.

Каковы преимущества / недостатки этих платформ тестирования? Какой из них имеет лучшую документацию? Какой из них наиболее популярен в мире Ruby? А в промышленности вообще?

У меня есть общие знания о том, как писать тесты. Я просто хочу изучить подходящую среду (ы) тестирования для тестирования приложений Rails.

Пожалуйста, помогите мне решить, с чего начать тестирование.

Ответы [ 5 ]

2 голосов
/ 06 июня 2011

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

Изучение и последующее освоение одной инфраструктуры тестирования облегчает в будущем понимание плюсов и минусов других структур и заставляет их работать в унисон.

Вы можете начать с тестирования следующих вещей:

  • Модульное тестирование ваших моделей
  • Функциональные тесты для ваших контроллеров
  • Информация о приборах и способах загрузки данных испытаний

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

Подробнее о тестировании Rails читайте здесь.
http://guides.rubyonrails.org/testing.html

Ручное поисковое тестирование
Как бы я ни любил автоматизированное тестирование, оно, IMHO, не заменит ручное тестирование. Основная причина в том, что автоматизированный пользователь может делать только то, что ему говорят, и проверять только то, что ему сообщили, для того, чтобы он воспринимался как пройденный / неудачный. Человек может использовать свой интеллект, чтобы находить ошибки и задавать вопросы, которые появляются при тестировании чего-то другого.
Подробнее о смешивании автоматического и ручного тестирования читайте в одном из моих ответов здесь:
Какие методы тестирования вы используете для разработки веб-сайтов?

2 голосов
/ 21 марта 2011

Я бы не сказал, что существует лучший набор инструментов для тестирования;и сообщество определенно не выбрало какой-либо стандарт.

Я настоятельно рекомендую Книгу RSpec от программистов-прагматиков - примерно половина книги посвящена тестированию с Rails сОгурец, RSpec и браузерные симуляторы, такие как Selenium.Это всесторонний обзор различных ситуаций, в которых вы окажетесь с Rails, и того, какие инструменты вы можете использовать в каждой ситуации.

2 голосов
/ 21 марта 2011

Selenium - это платформа для автоматизации тестирования пользовательского интерфейса.Сценарий Selenium запускает окно браузера, переходит на веб-страницу и манипулирует элементами страницы.

RSpec и Cucumber являются инструментами для того, что называется " поведенческая разработка (BDD) ".BDD - это процесс разработки, в котором у вас есть описание отдельной функции и некоторый сценарий (может быть сценарием Selenium), который проверяет эту функцию.RSpec и Cucumber в основном соединяют эти два, так что когда вы запускаете тестовый скрипт, вы видите список функций, написанных простым языком, и их статус тестирования.

Сценарии Selenium могут быть написаны в количестве языки , в то время как сценарии Cucumber используют Ruby.Документация для всех них нормальна, хотя требуется некоторое знание языка программирования.

Начальные ссылки:

1 голос
/ 21 марта 2011

Существует множество фреймворков, которые помогут вам протестировать код ruby ​​/ rails ... Самое замечательное, что динамическая природа Ruby дает вам большую гибкость.

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

Я настоятельно рекомендую эту прагматичную книгу программистов на BDD с использованием RSpec на Cucumber .

1 голос
/ 21 марта 2011

Самый простой способ начать работу - использовать TestUnit .Когда вы генерируете модель, просматриваете контроллер с помощью скаффолдинга, он автоматически создает папку тестирования для вас, содержащую файл установки тестовой среды и тесты, или вы можете добавить тесты к существующим моделям с помощью генератора рельсов.

Этозатем вопрос о прочтении документации по TestUnit, которой достаточно.

Для моего следующего шага я предпочитаю использовать RSpec вместо Cucumber - я обнаружил, что Cucumber трудно поддерживать, и показамечательно иметь тесты, которые могут прочитать ваши начальники. Я обнаружил, что большинство боссов не хотят читать или вносить вклад в тесты, и это отнимает много времени на разработку и очень «крошечное» - много маленькихбиты текста разбросаны по разным файлам.

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

Я мог бы продолжить, но вы спросили «где я могуискусство »- есть два хороших места.

...