我正在使用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?
最佳答案
This similar question总结得很好……最简单的是不处理私有方法,因为如果他们想要他们可以改变…公共方法是需要测试的方法.如果你想测试你的内部函数,你需要留下某种钩子以便qunit能够找到.