JetBrains, Frontend разработчик
Тестирование программного обеспечения не ново, уже давно разработчики, которые пишут на Java, Ruby и других серверных языках, успешно применяют TDD в своем процессе разработки. Картина тестирования меняется, когда мы начинаем говорим о программах, написанных на JavaScript-е. Часто эти программы исполняются в браузере, у пользователя на компьютере, и являются промежуточным звеном между пользователем и сервером.
В начале программы выглядят довольно просто, но с ростом проекта растет и объем JavaScript кода. В них появляется бизнес логика, перенесенная с сервера на клиент для улучшения отзывчивости, хитрая логика показа/скрытия элементов UI, и маленький, понятный скрипт, который был в начале, уже давно не маленький и не везде понятный. Непонимание приводит к дублированию кода. Дублирование кода влечет за собой рост сложности и количества ошибок. Из-за сложного кода уже не так просто добавлять новую функциональность, а постоянные ошибки начинают раздражать пользователей.
Всё это негативно сказывается на команде и проекте в целом. Одним из инструментов, который позволяет бороться со сложностью и количеством ошибок, является автоматическое тестирование. Однако тестирование JavaScript-а имеет свою специфику. В этом докладе я расскажу про свой опыт тестирования клиентского кода.