Какую среду тестирования пользовательского интерфейса JavaScript следует использовать для простого приложения HTML5 + jQuery? - PullRequest
5 голосов
/ 19 декабря 2010

Я собираюсь написать простое приложение HTML5 + JavaScript (jQuery) в свое свободное время, чтобы идти в ногу с последними веб-технологиями (на работе это более продвинутый бэкэнд C #).

Я бы хотел развиваться так же, как и последние десять лет, а именно, стиль TDD.

Будучи новичком в мире TDD / BDD / AcceptanceTDD в области HTML / JavaScript, я задаюсь вопросом: существует ли отличная среда или что-то подобное для написания теста на веб-странице в браузере (встроенная поддержка для многие браузеры являются явным плюсом)?

Причина, по которой я хотел бы использовать JavaScript, двояка. 1. Я хотел бы выучить больше JavaScript, и 2. Я хотел бы использовать для тестов тот же язык (языки), что и для разработки.

В противном случае, я мог бы просто использовать свои навыки C # и использовать Selenium, WatiN или аналогичные рамки.

Я нашел Жасмин , QUnit и доморощенное решение с использованием jQuery на MSDN , но не чувствую потока и сложности Поэтому рекомендации и опыт из первых рук более чем приветствуются.

Ответы [ 4 ]

8 голосов
/ 19 декабря 2010

JS Test Driver - это фреймворк, рекомендованный книгой Javascript TDD от O'Reilly, которую я сейчас читаю.На самом деле у меня еще не было возможности поиграть с этим, но:

  • Чувак, который написал книгу по тестированию JS, рекомендует это
  • У него очень хороший набор функций(автоматизированный тест, выполняемый в нескольких браузерах, является ключевым)
  • Это исходит от Google (любите их или ненавидите их, у них много умных JS людей, работающих там)

Такпо крайней мере это стоит проверить, я думаю.

4 голосов
/ 17 марта 2011

На данный момент, я бы порекомендовал Жасмин .Я успешно использовал его в нескольких проектах.Я действительно не сталкивался со слишком многими неприятными ситуациями, когда я просто не мог что-то сделать (в отличие от других инструментов).Его можно настроить в разных конфигурациях, в зависимости от ваших предпочтений - это может быть так же просто, как открыть страницу в браузере, или его можно динамически «обслуживать».

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

Важные замечания:

  • настройка: не используйте инструмент, который не работает легко из коробки * Стиль 1010 *
  • : используйте инструмент, который делаетсмысл для вас в контексте остальных ваших инструментов тестирования.Например, если вы используете инструменты BDD, найдите инфраструктуру BDD Javascript.Это, вероятно, самая большая разница в рамках - может также выбрать тот, который имеет синтаксис, который вам нравится.
  • кросс-браузер: тесты должны работать во всех браузерах
  • автоматизация: вы должны бытьвозможность выполнения сценариев выполнения тестов в одном или нескольких браузерах
  • тестирование кода, основанного на времени - если у вас Javascript поведение привязано к часам (как в анимации), наличие инфраструктуры тестирования облегчает это
  • mocking: у jasmine есть хорошая поддержка mocking, которая действительно помогает

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

2 голосов
/ 04 января 2011

Я закончил тем, что использовал QUnit, поскольку мне было очень просто вставить PUT (тестируемую страницу) в <iframe> и использовать jQuery для доступа к нему из модульных тестов.

Таким образом, яне нужны никакие другие внешние зависимости, кроме самого браузера (логика находится на 100% в клиенте) и никакого текстового редактора.

2 голосов
/ 19 декабря 2010

Я много с этим боролся.Я думаю, что Selenium - ваша лучшая ставка, особенно если учесть, что вы использовали ее раньше.Другая вещь для JS - это в основном юнит-тестирование.

Чтобы не умалять ответ машины-призрака, JS Test Driver ищет юнит-тестирование.

...