2011-06-22 3 views
1

У меня есть куча JS-кода, который в значительной степени зависит от элементов dom. Тестирующее решение, которое я использую в настоящее время, зависит от селена, но AFAIK не может правильно оценить ошибки js (ошибки addScript не приведут к тому, что ваши тесты потерпят неудачу, а getEval не работает, чтобы запустить javascript в фактическом окне).Каков хороший способ проверить дом тяжелый js?

Мне интересно, что такое хороший способ тестирования JS, который нуждается в dom в различных браузерах, таким образом, который приведет к сбоям тестирования?

+0

Используйте фактическое тестирование на стороне клиента с помощью 'QUnit' и используйте« Browserling »для проведения тестирования. – Raynos

ответ

1

Заканчивать Jasmine. Это хорошая структура тестирования Javascript с сообществом, в котором предусмотрено множество плагинов, включая плагины для упрощения тестирования запросов jQuery и ajax. Плагин jasmine-jquery позволяет загружать DOM-устройства из отдельных HTML-файлов, и затем вы можете запускать свои тесты против этих светильников.

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

1

qUnit - хорошая библиотека тестирования js. http://docs.jquery.com/Qunit

Я думаю, вы не можете поймать JS-ошибки, поскольку qUnit также написан в JS.

Однако он позволяет вам писать очень подробные тесты, которые потерпят неудачу, если произошла ошибка.

+0

Интересно - похоже, может быть, я могу подключить qunit к селену – malangi

3

http://www.phantomjs.org/

Это полный WebKit браузер, поэтому у вас есть полный DOM/модель спецификации, и все события, доступных вам, что вы получите в «реальном» браузере.

Обратите внимание, что это не полное решение, поскольку оно не будет имитировать браузер gecko или IE или Opera, но если вы просто проверяете регрессионный код, а не выполняете обширное кросс-платформенное тестирование, выглядит PhantomJS идеально подходит для вас.

Другие решения для изучения будет HtmlUnit или Watir

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