fs.readFile单元测试用例-“测试完成后无法记录。您是否忘了等待测试中的异步操作?”

问题描述 投票:0回答:1

我目前正在使用使用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完成?

javascript typescript unit-testing jestjs fs
1个回答
0
投票

fs.readFile不会返回Promise,并且(从摘录中)也不会为fileUpload编写代码来针对其运行await。您需要使fileUpload返回一个Promise,该Promise会在完成整个功能时解决。

© www.soinside.com 2019 - 2024. All rights reserved.