2014-01-09 4 views

ответ

5

Вам не нужен браузер без браузера для проведения тестов DOM с помощью Mocha. Пакет, такой как jsdom, обеспечивает многого, что необходимо для проведения тестирования DOM без использования браузера, без головы или нет. Например, мы использовали его для testing code, который ходит по дереву DOM.

Однако сам Mocha не поддерживает DOM в Node.js. Что-то еще должно обеспечить эту поддержку. Если вы выполните некоторые из обучающих программ в сети, вы можете в конечном итоге установить поддержку DOM, не осознавая этого. Например, учебник, который показывает, как тестировать код jQuery в Node.js с помощью Mocha, скажет вам сделать npm install jquery, который также устанавливает jsdom.

Вам нужно использовать что-то вроде PhantomJS, если другие решения не обеспечивают необходимую функциональность. Для instace jsdom не предоставляет интерфейс MutationObserver. (Есть параметр конфигурации с именем MutationEvents, но включение его не дает MutationObserver.) Поэтому, если вам нужно проверить код, который зависит от MutationObserver, вам нужно использовать что-то еще, например, PhantomJS.

+0

Что вы будете делать, если хотите перекрещивать браузер, проверяя свой код? Достаточно ли jsdom? @Louis –

+1

@InancGumus Для кросс-браузерной совместимости ничто не заменяет тестирование на реальных браузерах. Например, IE не принимает ['insertBefore'] (https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore) с« неопределенным »значением для ссылочного элемента. Он должен быть «null». Тестирование только с помощью jsdom не покажет это. – Louis

+0

Да, спасибо, я думаю то же самое. Я хотел, чтобы все знали об этом. Вы знаете, что существует возможный способ абстрагирования dom; если я хочу использовать jsdom для DOM, я могу использовать его; Или, если я хочу использовать базовую реальную DOM, я также могу ее использовать. Вы знаете, есть ли абстракция для этого? @Louis –

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