如何监视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,
};
答案 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
。