2010-08-25 4 views
2

Это скорее общий вопрос и обсуждение вопросов.Тестирование приложений с рельсами

Как можно протестировать приложение Rails?

Есть такие мантры, как BDD и TDD, а также фреймворки, такие как RSpec и Cucumber, но сколько их достаточно и что является лучшим способом?

Достаточно ли использовать огурец в качестве интеграционных тестов? Вы тоже пишете дополнительные модульные тесты?

Итак, что и как ваша стратегия тестирования Rails?

Ждет хорошие мнения ...

+0

Как я не думаю, что я могу дать действительно новый ответ, я ссылку на мой ответ от предыдущего вопроса, который был несколько аналогичный http://stackoverflow.com/questions/1448821/does-cucumber-do-away-with-the-need-to-write-unit-tests/1448928#1448928. Мой ответ также редактировался г-ном Топли, как и ваш вопрос :) – theIV

ответ

1

Как бы один протестировать приложение Rails? Тщательно прицеливается в Eighty percent coverage and no less!

Фактическое решение относительно «как» легко, но «сколько» может быть сложно ответить.

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

В моей повседневной работе мы используем rSpec, Cucumber и Selenium на довольно большом проекте Rails (10+ разработчиков, несколько лет в процессе создания).

rSpec обеспечивает покрытие устройства для всех наших моделей, контроллеров, помощников и других классов.

Огурцы обеспечивают функциональные и интеграционные тесты более высокого уровня.

Selenium используется для осуществления интенсивных javascript-областей нашего пользовательского интерфейса с помощью javascript (проходя через Capybara и Cucumber). У нас также есть набор регрессионных тестов в Selenium, используемых нашей командой тестирования и QA (версии, выпущенные в QA, освещены зеленым светом через нашу сборку CI).

Моей «минимальной» настройкой в ​​эти дни было бы охват уровня единицы с использованием rSpec в критических и/или сложных областях и полный набор функциональных тестов огурца на критических путях через приложение.

0

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

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

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

  • Модульное тестирование ваших моделей
  • Функциональные тесты для ваших контроллеров
  • Учить о Светильники и как загружать данные теста

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

Подробнее о проверке Rails здесь.
http://guides.rubyonrails.org/testing.html

Руководство Исследовательское тестирование
Насколько я люблю автоматизированное тестирование это, имхо, не является заменой для ручного тестирования. Основная причина заключается в том, что автоматизированный способ может выполнять только то, что ему говорят, и проверять только то, что было проинформировано, для просмотра в качестве pass/fail. Человек может использовать свой интеллект, чтобы находить ошибки и задавать вопросы, возникающие при тестировании чего-то другого.
Подробнее о смешивании автоматизирован и ручного тестирования в другой из моих ответов здесь:
What test methods do you use for developing websites?