Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Юнит-тесты на javascript? Реально ли? (https://javascript.ru/forum/misc/2639-yunit-testy-na-javascript-realno-li.html)

krvwd 26.01.2009 17:02

Юнит-тесты на javascript? Реально ли?
 
Хочу написать юнит тесты для web-приложения, но сталкиваюсь с такой вещью:

Надо, например, заполнить форму и отправить ее. Пишем код:

form = $("#form1").get(0)
form['name'] = 'ляляля'
form.submit()

А дальше - элементарщина: если дожидаться события onload, и вешать на него анонимную функцию, то код будет выглядеть как куча вложенных друг в друга анонимных функций, вешающихся на одно и то же событие. Ну и по мелочи - проблемы типа кросс-доменного скриптинга, который рестриктед.

Есть ли инструментарий, позволяющий создавать javascript юнит-тесты, например, под firefox, в процедурном стиле?

Андрей Параничев 26.01.2009 18:11

Первую часть вашего сообщения не понял совершенно.

Про юнит-тесты, я одно время тоже загорелся идеей tdd разработки на JavaScript. Инструментария, скажем так, совсем не густо. Из более-менее приемлемых я нашел только JSUnit, который, кстати, отдельно поставляется в виде удобного плагина для платформы eclipse.

Ну еще можно отдельно отметить Selenium, правда я его у себя поднять так и не смог.

vkwrd 27.01.2009 10:07

Цитата:

Сообщение от Андрей Параничев (Сообщение 11442)
Первую часть вашего сообщения не понял совершенно.

Что делаем:

1) Загружаем в iframe форму логина
2) Заполняем поля login и password
3) Запускаем form.submit()

Проблемы, с которыми я столкнулся:

1) Как дождаться события onload внутри iframe, чтобы продолжить тестирование, при этом не запихивая вторую половину теста в анонимную фукнцию, подвешиваемую в качестве обработчика этого onload?
2) iframe с тестами должен находиться в том же домене, что и тестируемый сайт => невозможно средствами javascript протестировать случай "не упал ли сервер".
3) Невозможно средствами javascript узнать полученные от сервера HTTP заголовки.

Pavel_Volodko 03.12.2009 17:09

Не так давно появился отличный инструмент для модульного тестирования (unit testing) JsTestDriver. Вот, написал небольшой обзор. Впечатления от использования только положительные. Рекомендую попробовать.

Кстати, описываемый пример в первом посте не является юнит-тестом. Это скорее функциональный тест.

Kolyaj 03.12.2009 17:32

К сожалению большинство js-кода юнит-тестами не покроешь.

Pavel_Volodko 03.12.2009 17:43

Это всё очень специфично. Код бывает разный.

Главное, что меня лично радует, что появляются отличные инструменты для javascript-разработчиков. И уже есть из чего выбирать под свои конкретные нужды.


Часовой пояс GMT +3, время: 16:23.