【问题标题】:Javascript Sandbox unit testingJavascript沙盒单元测试
【发布时间】:2010-02-09 16:05:50
【问题描述】:

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

【问题讨论】:

    标签: javascript unit-testing sandbox anonymous-function qunit


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      更好的是:不要创建私有函数。有什么大不了的?

      【讨论】:

        猜你喜欢
        • 2015-10-27
        • 1970-01-01
        • 2013-03-23
        • 2015-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-13
        • 2011-11-01
        相关资源
        最近更新 更多