Я пишу модульные тесты для модуля в небольшом приложении Javascript. Чтобы поддерживать интерфейс в чистоте, некоторые детали реализации закрыты анонимной функцией (обычный шаблон JS для конфиденциальности). Тем не менее, во время тестирования мне нужно получить доступ к / mock / проверить приватные части.
Большинство тестов, которые я написал ранее, были на Python, где нет реальных личных переменных (членов, идентификаторов, как вы хотите их называть). Кто-то просто предлагает конфиденциальность через нижнее подчеркивание для пользователей и свободно игнорирует ее при тестировании кода. Я полагаю, что в ОО-языках со статической типизацией можно сделать закрытые члены доступными для тестов, преобразовав их для защиты и создав подкласс для тестируемого объекта. В Javascript последнее не применяется, в то время как первое кажется плохой практикой.
Я всегда мог вернуться к тестированию черного ящика и просто проверить окончательные результаты. Это самый простой и чистый подход, но, к сожалению, недостаточно подробный для моих нужд.
Итак, есть ли стандартный способ сохранить переменные закрытыми, сохраняя при этом некоторые бэкдоры для тестирования в Javascript?