测试闭包中的隐藏函数是非常具有挑战性的,尤其是在 JavaScript 中,很多逻辑都被封装在闭包内,导致无法直接访问。例如,在以下代码中,我们无法直接测试内部函数 isNumber:
var add = ( function () {
function isNumber(x) { return typeof x === 'number'; }
return function add(a, b) {
if (isNumber(a) && isNumber(b))
return a + b;
return 'arguments should be numbers';
};
} )();
虽然我们可以将 isNumber 移到外部库中,但通常情况下我们的逻辑可能过于具体,无法轻易拆分出来进行测试。
暂无评论