Привет, я Кларк! Сегодня мы собираемся написать тестовый случай тестирования подразделения для манипуляций DOM.
Если у нас есть кусочный код HTML и JavaScript в одном index.html
Файл, это список Todo:
Умм … Этот список Todo дает людям вполне не знаю, как писать тестовый чехол, потому что этот код путает DOM с логикой JavaScript, поэтому, прежде всего, мы должны бы логику списка ToDo Control Dissemble от index.html.
:
О логике списка TODO Перейти к ToList.js
файл:
const addTodo = () => { const newTodoInput = document.getElementById('newTodo'); let currentTodoList = document.getElementById('todoList').innerHTML; currentTodoList += `
Прямо, просмотр – это вид, логика логика, поэтому мы можем очень легко написать тестовый случай для JavaScript, но … У нас нет DOM, как вызвать Addtodo
? да! Итак, мы должны готовить Дом для тестового случая Addtodo
Действительно
Как упомянуть Документ шума :
Jest Ships с JSDOM, который имитирует среду DOM, как если бы вы были в браузере. Это означает, что каждый DOM API, который мы звоним, можно наблюдать так же, как он будет наблюдаться в браузере!
Таким образом, мы можем очень легко имитировать среду DOM при использовании Jest, начать установить шутку и запись теста!
Установите jest в проекте (если у вас нет среды NPM или NODEJS, необходимо скачать узел, когда перед запуском):
npm install jest
Далее мы добавляем файл ToList.test.js
и напишите тестовый случай:
test('Check addTodo able add todo to todoList', () => { });
Как известно выше названия тестового корпуса, я хочу тестировать функцию Addtodo
Может быть настоящим добавить Todo к тодолисту.
Я разделил тест на тест на три части:
Мы должны выяснить, какие элементы это
Addtodo
нужно? Давайте посмотрим наToList.js
Сначала нам нуженкнопка
идентификатора этоAddtodo.
мы будем добавлять событие щелчкаAddtodo
Для этого также нуженвход
идентификатора этоnewtodo.
, последний нам нуженol
идентификатора этоТодолист
Для отображения списка TODO.Да! Всего три элемента –
Addtodo
нужно! Нам не волнует другие элементы в HTML-файле, мы только готовим только для тестового случая:
test('Check addTodo able add todo to todoList', () => { document.body.innerHTML = ``; });
- Использовать
требуется
ИмпортToList.js
Файл Добавить логику на элементы чтения, у него есть логикаAddtodo.
Именно мы достигаем теста в тестовом случае тоже:
test('Check addTodo able add todo to todoList', () => { document.body.innerHTML = ``; require('../todolist.js'); });
- Используйте селектор Получить элемент, пишите новое имя TODO
вход
и триггерAddtodo
покнопка
Затем проверьте, еслиinnerhtml
ol
Правильно Добавить новый Todo!
test('Check addTodo able add todo to todoList', () => { document.body.innerHTML = ``; require('../todolist.js'); const newTodoInput = document.getElementById('newTodoInput'); const addTodoBtn = document.getElementById('addTodoBtn'); const todolist = document.getElementById('todoList'); newTodoInput.value = 'New todolist!'; addTodoBtn.click(); expect(todolist.innerHTML).toBe('
Теперь мы закончим первый тестовый случай для ToList.js
Действительно Давайте выполним проверку проверить, правильно ли логика:
Спасибо, ребята, для чтения этого поста, если у вас есть какие-либо вопросы или выяснить, что муравьи неправильно в сообщении, пожалуйста, отправьте мне обсуждение! 😃
С другой стороны, этот пост одновременного публикация в моем блоге: Jest |. Используйте Jest Написать блок тестирования для манипуляций DOM
Оригинал: “https://dev.to/ms314006/use-jest-write-unit-testing-for-dom-manipulation-3n6c”