Unit testing 使用Jest测试exceljs(第三方模块)
我正在使用exceljs生成一个excel文件,其中包含一些数据。我想为函数编写测试用例 下面是函数: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
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);