fr_end
@fr_end
Frontend разработчик

Чем отличаются интеграционное, unit и e2e тестирование на frontend?

Добрый день. Недавно пришлось быстро вникать в тестирование фронтенда, и в голове осталась путаница, было бы здорово если поможете все расставить по своим местам на примере.
Юнит тестирование - тестирование отдельного модуля, элемента, юнита.
Интеграционное тестирование - тестирование компонентов в связке.
E2E тесты - тесты пользовательского уровня.

На проекте используем ангуляр 1.

Эти способы обычно применяют в связке, то есть написание одного не мешает писать другое. Например я тестирую модульное окно. Или кнопку back to top. Какими тестами надо будет все это покрыть?
Как в юнит тестах тестить нажатие на кнопку? Или мы можем тестить только функцию-обработчик?
  • Вопрос задан
  • 23569 просмотров
Решения вопроса 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Как в юнит тестах тестить нажатие на кнопку? Или мы можем тестить только функцию-обработчик?


В юнит тестах вы можете тестировать контроллер компонента, что мол он нужное состояние выставляет. DOM проверять не нужно. Механизм биндингов и так хорошо покрыт юнит тестами на уровне фреймворка. Чаще юнитами покрывают сервисы, ресолверы и прочее. Ими проверяют логику работы отдельных маленьких кусочков.

в интеграционных можно уже потихоньку проверять DOM отдельных компонентов. Просто потому что вы могли опечататься при написании биндингов. Ну то есть цель интеграционных тестов - проверить что в сборке компоненты работают.

В e2e (end to end) вы загружаете все приложение целиком и имитируете действия пользователей. Причем взаимодействие происходит насквозь. От кнопочки в браузере до запросов в базе данных на сервере (если есть бэкэнд). Это самый медленный вид тестирования и им стоит покрывать только позитивные сценарии.

Читать про пирамиду тестирования.
Ответ написан
Комментировать
sim3x
@sim3x
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
21 нояб. 2024, в 15:58
1000 руб./за проект
21 нояб. 2024, в 15:58
30000 руб./за проект
21 нояб. 2024, в 15:49
30000 руб./за проект