我正在使用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();
});