Поблочное тестирование Песочницы JavaScript

Я использую 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 ?

5
задан Yann Trevin 26 February 2010 в 07:20
поделиться

2 ответа

Этот похожий вопрос довольно хорошо подводит итог... Самое простое - это не иметь дело с частными методами, так как они могут измениться, если захотят... Публичные методы - это те методы, которые нуждаются в тестировании. Если вы хотите протестировать свои внутренние функции, вам нужно оставить какой-нибудь крюк, чтобы уволиться и найти.

3
ответ дан 15 December 2019 в 01:00
поделиться

Вы не можете. Нет способа получить доступ к нему за пределами этой области видимости. Ваша единственная надежда - это тест на интеграцию, т.е. тестовые функции на глобально доступном объекте, которые используют ваши внутренние функции.

Еще лучше: не делайте приватные функции. Что тут такого?

1
ответ дан 15 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: