Доброй ночи всем.
Изучаю qunit. С самого начала интересовал один вопрос: какова best practice тестирования систем, в которых 90% кода скрыто от доступа рядового пользователя (например, плагин)? Стандартная схема ведь такова:
- подключаем qunit.js \ css
- подключаем scripts.js, с плагином \ скриптами, которые тестируем
- подключаем сами тесты
При этом не нашел никаких инструментов, чтобы протестировать приватный метод, который недоступен извне - это невозможно тем способом, каким тестируются прочие, публичные функции. И я вижу несколько вариантов для решения проблемы:
- держать 2 версии: дев (с доступными извне методами), и продакшен-сборку
- писать тесты прямо внутри нашего script.js (qunit позволяет запускать тесты по цепочке), на мой взгляд - решение грязное, но лучше, чем держать специальную версию с доступными извне методами
Поверхностный поиск на тему tdd никаких внятных результатов на эту тему не дал, да и освещаются там несколько иные вопросы.
Буду благодарен за наводки на нужную колею, заранее спасибо.
P.S. набрел на
статью о Jasmine, которая подтверждает второй вариант. Но не оставляет ли этот подход непокрытыми тестами некоторые из функций?