繁体   English   中英

Javascript Sandbox单元测试

[英]Javascript Sandbox unit testing

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM