[英]Spy on a function which is called by another function in Jasmine
我如何监视Jasmine中另一个函数调用的函数?
如果我调用this.bar()
,期望是真的,但我对此不感兴趣。
规格
import * as src from './src;
describe('app', () => {
it('should call bar', () => {
spyOn(src, 'bar');
src.foo();
expect(src.bar).toHaveBeenCalled();
});
});
资源
function foo() {
bar();
}
function bar() {
console.log('bar');
}
export {
foo,
bar,
};
在Jasmine中,当你使用spyOn
,它会嘲笑该函数并且不执行任何操作。 如果你想在其中测试更多的函数调用,你需要调用and.callThrough()
,如下所示,请尝试一下
spyOn(src, 'bar').and.callThrough();
检查这个问题: AngularJS - 如何测试是否从另一个函数中调用函数? 。 看来正在测试的函数( bar
)需要使用与spyOn( src.bar
)函数相同的引用来调用。 你需要在foo
里面引用src.bar
,所以你必须使用this.bar
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.