1

我有一个函数,里面有一个函数我需要能够测试内部函数是否被调用我试过寻找 spyOn 的例子,但没有找到任何东西我可以使用我试图测试的代码就像

function OutterFunc(){
    function InnerFunc(){
        return "A";
    }
    var b = InnerFunc();
    return b;
}

我希望我能做的测试是 InnerFunc 已被调用 任何帮助都会非常受欢迎

4

1 回答 1

1

嗯,我看不到任何明显的方法来测试是否调用了该内部函数。在您上面给出的微不足道的情况下,我想获得“A”的返回值是该函数被调用的非常有说服力的证据。

如果测试以确保以某种方式调用函数,那么在某些情况下,您必须重构代码。您可以按照上面的评论将内部函数移出另一个函数。您可以像这样将内部函数传递给外部函数:

var inner = function(){
    return 'A';
} 

function OuterFunc(fn) {
    return fn();
}

然后这样称呼它:

var res = OuterFunc(inner);

现在你可以窥探内部。还有其他可能性,但您将不得不进行一些重构以测试该内部功能。

于 2015-02-04T23:34:54.133 回答