我想知道是否有可能在js中测试原型的私有方法。我怀疑这是不可能的,但也许有人会让我感到惊讶......
例如,假设我有以下课堂餐厅:
function Restaurant() {
}
Restaurant.prototype = (function() {
var private_stuff = function() {
// Private code here
};
return {
constructor:Restaurant,
use_restroom:function() {
private_stuff();
}
};
})();
是否可以为private_stuff方法编写单元测试?我使用茉莉花进行单元测试,但我想这并不重要。
谢谢, 利奥尔
答案 0 :(得分:0)
上次我遇到类似的事情,我不得不专门暴露私人的东西,听起来很奇怪:
function Restaurant() {
}
Restaurant.prototype = (function() {
var private_stuff = function() {
// Private code here
};
var internalMethods = {};
if (window.exposeInteralMethods) {
internalMethods = {
private_stuff: private_stuff
};
}
return {
internalMethods: internalMethods,
constructor:Restaurant,
use_restroom:function() {
private_stuff();
}
};
})();
如果有人除了你之外设置window.exposeInteralMethods
,你就有风险,但有时需要2x4调试squirmware。