我目前正在使用使用fs.readFile的方法来开玩笑地编写单元测试用例。我一直在尝试测试fs.readFile内的逻辑,但没有成功。因此,我尝试在下面的函数中进行记录
我要测试的功能
fileUpload = (request: Request, response: Response) => {
// Reading the file
fs.readFile(request.file.path, async (error, file) => {
console.log('Hey i am inside')
const entity = await this.model.fileUpload(x, y, z);
});
};
到目前为止我的测试用例
it('should perform file upload', async () => {
....
await Promise.resolve(controller.fileUpload(request as Request, response as Response))
....
});
抛出错误
测试完成后无法记录。你忘了等什么吗在测试中异步?尝试记录“嘿我在里面”。
为什么会显示此错误,即使我在测试文件中返回了已解决的承诺。我也推断,在控制进入fs.readFile之前,测试已经完成。我应该怎么做才能等待fs.readFile完成?
fs.readFile
不会返回Promise,并且(从摘录中)也不会为fileUpload
编写代码来针对其运行await
。您需要使fileUpload
返回一个Promise,该Promise会在完成整个功能时解决。