Какой хороший способ проверить Dom Heavy JS? - PullRequest
1 голос
/ 22 июня 2011

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

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

Ответы [ 3 ]

3 голосов
/ 22 июня 2011

http://www.phantomjs.org/

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

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

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

1 голос
/ 22 июня 2011

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

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

1 голос
/ 22 июня 2011

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

Полагаю, вы не можете отловить ошибки JS, поскольку qUnit также написано на JS.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...