测试功能以开玩笑开始下载文件

时间:2019-03-06 10:31:37

标签: javascript typescript unit-testing testing jestjs

我正在尝试使用JEST库测试此功能(我也在项目中使用了酶),但是我完全陷入了困境。

用几句话描述此功能,我用它来导出先前准备的数据。我处理了一些数据,然后以单个字符串的形式传递数据,该函数将其包装到单个文本文件中并开始下载。

通常是csv,tsv和文本。

/**
 * Function creating text file and starting download process
 *
 * @param name - file name
 * @param extension - file extension
 * @param content - file content
 */
export const downloadTextFile = (name: string, extension: string, content: string) => {
    const link = document.createElement('a');
    link.className = 'download-helper';
    link.download = name + '.' + extension;
    link.href = `data:application/${extension},` + escape(content);
    link.click();
};

我想养成良好的测试习惯,因此在这里我也试图了解这种情况。有关如何启动它的任何提示?

1 个答案:

答案 0 :(得分:1)

This function is not that easy to test because it does not return any value and performs side effects. A solution to this is using jest spies to mock the createElement function. Example : https://codesandbox.io/s/6xp9lqjzk3