[英]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.