Javascript 如何在自执行匿名函数中测试私有函数?
函数Javascript 如何在自执行匿名函数中测试私有函数?,javascript,qunit,Javascript,Qunit,函数private()只能在cls范围内访问 如何测试它 在我看来,唯一的选择是将其定义为公共的 var cls = (function() { function private() { return 'private'; } return { public: function() { console.log(private()); return 'public'; }
private()
只能在cls
范围内访问
如何测试它
在我看来,唯一的选择是将其定义为公共的
var cls = (function() {
function private() {
return 'private';
}
return {
public: function() {
console.log(private());
return 'public';
}
}
})();
QUnit.test('public test', function(assert) {
assert.ok(cls.public() === 'public');
});
QUnit.test('private test', function(assert) {
assert.ok('How to access to the cls.private ?' === 'private');
});
在这种情况下,它将是可调用的,我希望避免这种情况。您应该测试接口而不是实现。不要测试您的私有方法。您的测试应该表示您的公共接口的使用情况。测试使用私有函数的公共接口。如果
private
是一个“fat”函数,我需要确保其可操作性?可能存在任何反射库?@cetver:什么是fat函数?你应该测试接口而不是实现。不要测试你的私有方法。你的测试应该代表你的公共接口的使用情况。测试使用私有函数的公共接口。如果private
是一个“fat”函数,我需要确保其可操作性?可能存在任何反射库?@cetver:什么是fat函数?
return {
_private: function() {
return 'private';
}
}