Литературу по подходам к unit-тестированию javascript?
Начали внедрять в проекте тестирование javascript-кода. С технической частью разобрался, начал использовать QUnit+Testswarm, в данном аспекте вопросов вроде бы не возникает.
Возникают вопросы другого рода:
1. Методология unit-тестирования javascript. Подходы, используемые для серверных языков, далеко не всегда применимы.
2. Многие вещи в коде завязаны на интерфейс. Как лучше всего тестировать такие вещи? Это ж получается уже не чистое unit-тестирование, но и немного automation?
3. Как тестировать скрипты, которые появляются где-то на страницах, доступных после определенных действий? Например после логина или покупки товара.
4. Учитывая привязку к интерфейсным вещам, т.е. к HTML, как лучше всего mock-ать данные и состояния для тестов?
Не знаю насчет литературы, но можно например глянуть как ребята из jquery делают: github.com/jquery/jquery/tree/master/test или на других проектах вызывающих доверие.
Я уже думал об этом. Но с jQuery всё относительно просто: это фреймворк, у которого есть куча атомарных независимых методов, которые элементарно поддаются тестированию. Сложности же возникают с тестированием большого приложения с кучей зависимостей и источников данных.
В любом случае, чем менее связан код, тем проще его тестировать с помощью юнит тестов: берем отдельный класс, объект или функцию и проводим тесты, и если код имеет слабую связанность, то можно заменять нужные зависимости моками. Но в js можно поступить немного проще: переопределить методы зависимых классов (прототип) или объектов. Если Вы хотите тестировать работоспособность всего приложения целиком, то здесь будет уже интеграционное тестирование.