Javascript Sandbox单元测试

hoj*_*erg 5 javascript unit-testing sandbox anonymous-function qunit

我正在使用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.
    }

})();
Run Code Online (Sandbox Code Playgroud)

所以在这里我可以轻松进行单元测试PublicAPI.publicFunction,但我将如何进行测试PrivateAPI.privateFunction

gna*_*arf 3

这个类似的问题总结得很好...最简单的是不处理私有方法,因为它们可以根据需要进行更改...公共方法是需要测试的方法。如果你想测试你的内部函数,你需要留下某种钩子以便 qunit 能够找到。