繁体   English   中英

使用Jasmine测试功能内部的功能

[英]Testing a function inside a function with Jasmine

我有一个函数,里面有一个函数,我需要能够测试内部函数是否被调用,我试图寻找spyOn的示例,但没有找到任何我可以尝试的代码,我们可以尝试

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

我希望我能做的测试是InnerFunc被称为“任何帮助”

嗯,我没有任何明显的方法可以测试内部函数是否被调用。 在上面给出的琐碎情况下,我想获得返回值“ A”可以很好地证明该函数已被调用。

如果进行测试以确保以某种方式调用了函数,则在某些条件下,您必须重构代码。 您可以按照上面的注释将内部函数移出另一个函数。 您可以像这样将内部函数传递给外部函数:

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

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

然后这样称呼它:

var res = OuterFunc(inner);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM