Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 使用Jest测试exceljs(第三方模块)_Unit Testing_Jestjs_Exceljs_Ts Jest - Fatal编程技术网

Unit testing 使用Jest测试exceljs(第三方模块)

Unit testing 使用Jest测试exceljs(第三方模块),unit-testing,jestjs,exceljs,ts-jest,Unit Testing,Jestjs,Exceljs,Ts Jest,我正在使用exceljs生成一个excel文件,其中包含一些数据。我想为函数编写测试用例 下面是函数: public exportUploadErrors(data: UploadError[]): void { const fileName = `lei-upload-errors-${new Date().toISOString()}`; const workbook = new Workbook(); const worksheet: Worksheet = wor

我正在使用exceljs生成一个excel文件,其中包含一些数据。我想为函数编写测试用例

下面是函数:

public exportUploadErrors(data: UploadError[]): void {
    const fileName = `lei-upload-errors-${new Date().toISOString()}`;
    const workbook = new Workbook();
    const worksheet: Worksheet = workbook.addWorksheet('Upload Errors');

    const headers = [
      { header: 'LEI ID', key: 'leiId' },
      { header: 'Error Message', key: 'error' },
    ];

    worksheet.columns = headers;

    worksheet.getRow(1).fill = {
      type: 'pattern',
      pattern: 'solid',
      fgColor: { argb: 'cccccc' },
    };

    worksheet.getRow(1).font = {
      size: 12,
      bold: true,
    };

    // adding data to excel sheet
    data.forEach((error: UploadError) => {
      worksheet.addRow(error);
    });

    workbook.xlsx.writeBuffer().then((leiExportArr) => {
      const blob = new Blob([leiExportArr], {
        type:
          'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
      });

      fs.saveAs(blob, `${fileName}.xlsx`);
    });
  }
当我使用伪数据调用
exportUploadErrors
方法时,
workbook.xlsx.writeBuffer()
方法不会被调用,
fs.saveAs
方法也不会被调用


如何模拟这些方法?

其中一种方法应该有效:

await workbook.xlsx.writeFile(filename);

文件:

顺便说一句,出于生成目的,我将为您提供我的lib:,它由ExcelJS提供支持

const buffer = workbook.xlsx.writeBuffer()
await fs.writeFileSync('file.xlsx', buffer);