Я использую QUnit, который превосходен.
Я включил свое приложение JS в (function () {})();
песочница. Это скрывает много кода, что я не хочу общественность, но я также должен протестировать тот код.
Вот пример того, как это работает:
(function () {
var PublicAPI = window.PublicAPI = {};
PublicAPI.publicFunction = function (foo) {
PrivateAPI.privateFunction(foo);
return 'bar';
};
var PrivateAPI = {};
PrivateAPI.privateFunction: function (foo) {
// Make secret stuff that never gets returned to the public
// Could be an AJAX call.
}
})();
Таким образом, здесь я могу легко модульный тест PublicAPI.publicFunction
, но как я протестирую PrivateAPI.privateFunction
?
Этот похожий вопрос довольно хорошо подводит итог... Самое простое - это не иметь дело с частными методами, так как они могут измениться, если захотят... Публичные методы - это те методы, которые нуждаются в тестировании. Если вы хотите протестировать свои внутренние функции, вам нужно оставить какой-нибудь крюк, чтобы уволиться и найти.
Вы не можете. Нет способа получить доступ к нему за пределами этой области видимости. Ваша единственная надежда - это тест на интеграцию, т.е. тестовые функции на глобально доступном объекте, которые используют ваши внутренние функции.
Еще лучше: не делайте приватные функции. Что тут такого?