检查函数是否被调用



我正在使用Jest测试一些实用程序功能。

my_util.js:

export function myFunc(i) {
if (i === 1){
anotherFunc();
}
}

another_util.js:

export function anotherFunc(i) {
console.log('in anotherFunc');
}

测试anotherFunc()被调用的最简单的方法是什么?这是我当前的单元测试,它失败了。是否有一种方法来测试一个函数是由它的名字调用的?

import { myFunc } from './my_util.js'
...
it('myFunc should call anotherFunc', () => {
const anotherFunc = jest.fn();
myFunc(1);
expect(anotherFunc).toHaveBeenCalled();  
});

结果:

Expected number of calls: >= 1
Received number of calls:    0

也许你应该把anotherFunc作为参数注入myFunc,这将使测试更容易:

function myFunc(i, cb) {
if (i === 1){
cb();
}
}
it('myFunc should call anotherFunc', () => {
const anotherFunc = jest.fn();
myFunc(1, anotherFunc);
expect(anotherFunc).toHaveBeenCalled();  
});

相关内容

  • 没有找到相关文章

最新更新