小编Pol*_*uge的帖子

createWriteStream 的 Jest 单元测试('error')

我正在使用 Nestjs 并编写了下面的函数,该函数从发布请求接收文件并将其保存在我的项目中的文件夹中。我的问题是我不确定如何测试on('error')分支。

函数到单元测试。

  saveFile({ createReadStream, filename }: FileUpload): Promise<boolean> {
    return new Promise(async (resolve, reject) => {
      createReadStream().pipe(
        createWriteStream(join(process.cwd(), `apps/mull-api/uploads/${filename}`))
          .on('finish', () => resolve(true))
          .on('error', () => {
            console.log(createReadStream);
            reject(false);
          })
      );
    });
  }
Run Code Online (Sandbox Code Playgroud)

我如何测试on('finish')分支

  it('should save file', async () => {
    const returnedFile = await service.saveFile(mockFile);
    expect(returnedFile).toBe(true);
  });
Run Code Online (Sandbox Code Playgroud)

这就是我的模拟文件的样子。我尝试提供一个名称为空的模拟文件,但它出错了。

export const mockFile: FileUpload = {
  filename: 'zoro',
  mimetype: 'image/jpeg',
  encoding: '7bit',
  createReadStream(): ReadStream {
    return fs.createReadStream(join(process.cwd(), `apps/mull-api/uploads/mock-upload/zoro`));
  },
};
Run Code Online (Sandbox Code Playgroud)

unit-testing node.js typescript jestjs nestjs

7
推荐指数
1
解决办法
5953
查看次数

标签 统计

jestjs ×1

nestjs ×1

node.js ×1

typescript ×1

unit-testing ×1