我正在尝试运行测试用例来测试我的 Web 服务的入口点,我在运行单元测试时遇到了一个问题。无法监视异步函数,因为它是属性而不是函数。
我正在尝试测试是否在 server.js 文件中调用了 run 函数
入口文件有点像下面。
import config from 'config';
export default async function run() {
try {
/*
some code
*/
} catch (err) {
process.exit(1);
}
}
run();
测试文件如下
import run from '../server';
describe('server-test', () => {
it('run', async () => {
const start = require('../server');
const spy = jest.spyOn(start, run);
await run();
expect(spy).toBeCalled();
});
});
测试应该可以正常运行,但是在运行此测试时出现以下错误
Cannot spy the async function run() {
try {
/*
some code.
*/
} catch (err) {
process.exit(1);
}
} property because it is not a function; undefined given instead