Jest如何测试调用函数的行?



有一个命令行应用程序。该文件有几个函数,但如何测试调用第一个函数的行呢?

例如

function child(ch) {
console.log(ch);
}

function main(a) {
console.log(a);
child('1');
}
main(24);

如何在加载文件时测试main是否被调用?

如果你不介意把你的文件分成两个不同的文件:

index.js

import main from './main.js';
main(24);

main.js

function child(ch) {
console.log(ch);
}

function main(a) {
console.log(a);
child('1');
}
export default main;
然后你可以模拟main.js中的main()函数,并检查它是否在index.js

import: 上被调用。index.spec.js

const mockedMain = jest.fn();
jest.mock('../main.js', () => ({
default: () => mockedMain(),
}));
describe('test that main is called on index.js import', () => {
it('should call main', () => {
require('../index.js');
expect(mockedMain).toHaveBeenCalled();
});
});

我不知道如何在保持main()在同一文件中做同样的事情。

最新更新