繁体   English   中英

窥探由Jasmine中的另一个函数调用的函数

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

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