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

时间:2016-03-03 12:30:54

标签: javascript node.js unit-testing 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,
};

2 个答案:

答案 0 :(得分:0)

在Jasmine中,当你使用TypeError: int() argument must be a string or a number, not 'Tensor' 时,它会嘲笑那个函数并且不会执行任何操作。如果您想在其中测试更多功能调用,则需要拨打and.callThrough(),如下所示,请尝试

spyOn

答案 1 :(得分:0)

检查此问题:AngularJS - How to test if a function is called from within another function?。看来正在测试的函数(bar)需要使用与spyOn(src.bar)函数相同的引用来调用。您需要在foo内引用src.bar,因此您必须使用this.bar