Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript沙盒单元测试_Javascript_Unit Testing_Sandbox_Anonymous Function_Qunit - Fatal编程技术网

Javascript沙盒单元测试

Javascript沙盒单元测试,javascript,unit-testing,sandbox,anonymous-function,qunit,Javascript,Unit Testing,Sandbox,Anonymous Function,Qunit,我正在使用QUnit,这是非常好的 我把我的JS应用程序放在(函数(){})()中沙箱。这隐藏了很多我不想公开的代码,但我还需要测试这些代码 下面是一个如何工作的示例: (function () { var PublicAPI = window.PublicAPI = {}; PublicAPI.publicFunction = function (foo) { PrivateAPI.privateFunction(foo);

我正在使用QUnit,这是非常好的

我把我的JS应用程序放在
(函数(){})()中沙箱。这隐藏了很多我不想公开的代码,但我还需要测试这些代码

下面是一个如何工作的示例:

(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

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

你不能。无法从该范围之外访问它。您唯一的希望是对其进行集成测试,即在使用内部函数的全局可用对象上测试函数

更好的办法是:不要做私人活动。有什么大不了的