2016-05-04 2 views
-1

Я понимаю, как тестировать функции, которые выводят значения с моккой и chai в браузере, но я не понимаю, как я могу использовать эту систему для тестирования полноценных веб-приложений. Чтобы разбить его на нечто более простое, как я могу проверить, что при нажатии на кнопку отображается <div>, которая уже существует в HTML?Тестирование веб-приложений с помощью Mocha и Chai

Я следил за этим tutorial, но это просто не относится к уже существующим приложениям. Он хочет, чтобы я создал новый test.html, но это не имеет смысла, если мое приложение полагается на ранее существовавший HTML. Он также ожидает, что вы сможете создать new Foo, а затем запустить тесты, например, Foo имеет параметр по умолчанию name. Но мое приложение уже создает Foo на document ready.

Возможно, мне не хватает точки.

ответ

2

При тестировании приложений вы не должны тестировать приложение в целом, а отдельные компоненты, из которых состоит ваша заявка. Вы тестируете эти компоненты индивидуально и изолированно.

Таким образом, у вас обычно есть «test.html» (чтобы взять ваш пример), который включает в себя только те элементы, которые необходимы вам для тестирования вашего компонента. Учитывая ваше первое описание «test.html», может состоять только из одной кнопки и скрытого div. Ваш тест будет эмулировать нажатие кнопки, а затем проверить, что div больше не скрыт.

Это позволяет убедиться, что поведение вашего кода верное, прежде чем интегрировать его в более крупное веб-приложение, где это станет намного сложнее.

Хотя ваше приложение может уже создать Foo, когда документ готов, этот конкретный код не будет (или не должен) быть включен в ваш блок-тест для самого Foo.

Похоже, вы не используете рамки приложения, которые я бы рекомендовал. Они обеспечивают хорошо изученную структуру для веб-приложений и обычно имеют богатую документацию по тестированию приложений, построенных с ними. Я бы порекомендовал AngularJS (https://angularjs.org/) или React (https://facebook.github.io/react/), но есть много альтернатив.

+0

Это приложение было создано и поддерживается в течение 10+ лет, к сожалению, нет возможности переключиться на React или Angular. Получение Bootstrap в этом было чудом. Ваш ответ имеет смысл для меня - я не думал, что можно будет использовать тестовую среду для фактической проверки всей страницы. – BarryBones41

+1

Ах, ладно. Затем, работая с устаревшей кодовой базой, я бы выделил разделы кода, чтобы проверить немного за раз. Но это будет болезненно, к сожалению, однако ребенок продвигается вперед, и прогресс будет происходить. Документация для других фреймворков также полезна для того, чтобы увидеть, как современные структуры структурированы, чтобы помочь в тестировании. – nfactorial

+0

Нет ничего плохого в тестировании веб-приложения или любого приложения в целом. Обычно это называется «приемочным тестированием», и в отличие от модульных тестов вы хотите протестировать приложение в конце, со всеми движущимися частями, работающими вместе, чтобы убедиться, что приложение работает в реальном мире. То есть если ваше приложение идеально подходит, но ваша хостинговая компания ненадежна, это может возникнуть при приемочных испытаниях и должно быть исправлено. –

Смежные вопросы