Я узнал о комплексных тестах для веб-приложений совсем недавно. Они в основном копируют пользовательский сценарий от начала до конца, буквально запуская веб-браузер. Есть, например, NightwatchJS и TetsCafé.
Есть также бегуны модульных тестов, такие как Mocha, Jasmine, AVA, Jest, QUnit. Если я правильно понимаю, они позволяют тестировать блоки кода, подобные функциям, сравнивая возвращаемое значение с известным результатом.
Если я создаю веб-приложение, которое включает обработку объектов документа, то есть добавление и удаление элементов или изменение их позиций. Могу ли я сделать это с помощью пяти вышеупомянутых модульных тестеров? Мне кажется, что комплексные тесты обходятся дороже: я не могу позволить себе запускать их так часто, как модульные тесты, потому что они просто занимают больше времени.
Итак, мой вопрос: как я могу тестировать функции, которые взаимодействуют с DOM? Я нашел эту страницу в вики Jest, где объясняется, как тестировать код JQuery. Но я не знаю, как тестировать свои собственные функции (без участия jQuery).
Например, у меня есть функция, которая добавляет новый div
к body
документа и возвращает вновь созданный элемент div
.
let add = function() {
let div = createElement('div');
div.innerHTML = '<div class="newElement">Hello World</div>';
document.querySelector('body').appendChild(div)
return div
}
Как я могу проверить это действительно:
add()
возвращает экземпляр HTMLElement
и
- элемент
div
с именем класса newElement
существует в DOM.