Я, кажется, умею выполнять тесты DOM с помощью Mocha.Как Mocha выполняет тестирование DOM без фантомов
Я предположил, что мне нужен безголовый браузер, такой как PhantomJS.
В чем преимущество использования PhantomJS с Mocha? (Я использую Yeoman.)
Я, кажется, умею выполнять тесты DOM с помощью Mocha.Как Mocha выполняет тестирование DOM без фантомов
Я предположил, что мне нужен безголовый браузер, такой как PhantomJS.
В чем преимущество использования PhantomJS с Mocha? (Я использую Yeoman.)
Вам не нужен браузер без браузера для проведения тестов 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.
Что вы будете делать, если хотите перекрещивать браузер, проверяя свой код? Достаточно ли jsdom? @Louis –
@InancGumus Для кросс-браузерной совместимости ничто не заменяет тестирование на реальных браузерах. Например, IE не принимает ['insertBefore'] (https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore) с« неопределенным »значением для ссылочного элемента. Он должен быть «null». Тестирование только с помощью jsdom не покажет это. – Louis
Да, спасибо, я думаю то же самое. Я хотел, чтобы все знали об этом. Вы знаете, что существует возможный способ абстрагирования dom; если я хочу использовать jsdom для DOM, я могу использовать его; Или, если я хочу использовать базовую реальную DOM, я также могу ее использовать. Вы знаете, есть ли абстракция для этого? @Louis –