Простое руководство по тестированию взаимодействия с пользователем с помощью библиотеки тестирования React
Статья (рус.): https://reddeveloper.ru/blog/363/prostoye-rukovodstvo-po-testirovaniyu-vzaimodeistviya-s-pol-zovatelem-s-pomoshch-yu-biblioteki-testirovaniya-react
Из этой статьи мы возьмем несколько примеров того, что в принципе можно тестировать, так как у меня по-прежнему есть сомнения и вопросы в этой области.
1. Поле ввода работают правильно
Имеем селект. Тестируем, что он работает правильно и выбранное пользователем значение действительно выбирается.
Полезные методы:
- getByRole('combobox')
- userEvent.selectOptiions
- expect(select).toHaveValue
2. При вводе/выборе значения оно корректно отображается в интерфейсе
Имеем селект города. Выводим выбранный город где-то в интерфейсе Тестируем, что при выборе города в селекте он изменяется и в интерфейсе.
Полезные методы:
- поиск элемента по тексту getByText
- поиск элемента другими методами, но с уточнением его текста (в настройках метода), например,
3. При ховере появляется элемент
Имеем тултип, который должен появляться при наведении на элемент. Тестируем, что он появляется.
Полезные методы:
- userEvent.hover
- expect(tooltip).toBeInTheDocument
4. Загрузка файлов
Проверяем, что загрузчик файлов видит загруженные файлы.
Полезные методы:
- new File(['hello'], 'hello.png', {type: 'image/png'})
- userEvent.upload(filePicker, file)
- expect(filePicker.files[0]).toEqual(file)
5. Отправка формы
Имеем форму. Тестируем, что при правильном заполнении полей форма успешно отправляется.
Также тестируем все варианты валидации:
- пустые поля
- некорректно заполненные поля
Полезные методы:
- userEvent.type(field, text)
- userEvent.selectOptions(select, option)
- userEvent.click(element)
- getByPlaceholderText(text)
- getByLabelText(text)
#ссылки #тестирование #testinglibrary
Статья (рус.): https://reddeveloper.ru/blog/363/prostoye-rukovodstvo-po-testirovaniyu-vzaimodeistviya-s-pol-zovatelem-s-pomoshch-yu-biblioteki-testirovaniya-react
Из этой статьи мы возьмем несколько примеров того, что в принципе можно тестировать, так как у меня по-прежнему есть сомнения и вопросы в этой области.
1. Поле ввода работают правильно
Имеем селект. Тестируем, что он работает правильно и выбранное пользователем значение действительно выбирается.
Полезные методы:
- getByRole('combobox')
- userEvent.selectOptiions
- expect(select).toHaveValue
2. При вводе/выборе значения оно корректно отображается в интерфейсе
Имеем селект города. Выводим выбранный город где-то в интерфейсе Тестируем, что при выборе города в селекте он изменяется и в интерфейсе.
Полезные методы:
- поиск элемента по тексту getByText
- поиск элемента другими методами, но с уточнением его текста (в настройках метода), например,
getByRole('heading', { name: /moscow/i })
3. При ховере появляется элемент
Имеем тултип, который должен появляться при наведении на элемент. Тестируем, что он появляется.
Полезные методы:
- userEvent.hover
- expect(tooltip).toBeInTheDocument
4. Загрузка файлов
Проверяем, что загрузчик файлов видит загруженные файлы.
Полезные методы:
- new File(['hello'], 'hello.png', {type: 'image/png'})
- userEvent.upload(filePicker, file)
- expect(filePicker.files[0]).toEqual(file)
5. Отправка формы
Имеем форму. Тестируем, что при правильном заполнении полей форма успешно отправляется.
Также тестируем все варианты валидации:
- пустые поля
- некорректно заполненные поля
Полезные методы:
- userEvent.type(field, text)
- userEvent.selectOptions(select, option)
- userEvent.click(element)
- getByPlaceholderText(text)
- getByLabelText(text)
#ссылки #тестирование #testinglibrary
reddeveloper.ru
Простое руководство по тестированию взаимодействия с пользователем с помощью библиотеки тестирования React - RedDeveloper
В предыдущем посте я показал вам на примерах, как писать базовые тесты в React. Важнейшей частью пользовательского интерфейса приложений является взаимодействие с пользователем. При тестировании различных компонентов в React вам нужно будет имитировать взаимодействие…
👍2