首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Mocha在react项目中使用文件保护程序测试文件下载时,会给出"ReferenceError:未定义HTMLAnchorElement“错误

使用Mocha在react项目中使用文件保护程序测试文件下载时,会给出"ReferenceError:未定义HTMLAnchorElement“错误
EN

Stack Overflow用户
提问于 2020-08-11 22:58:10
回答 1查看 157关注 0票数 1

我正在尝试在一个react项目中点击一个按钮来测试文件下载,该项目使用来自npm file-saver https://www.npmjs.com/package/file-saver的'saveAs‘。

下载功能如下:

代码语言:javascript
复制
const downloadFile = (csvData) => {
    const dataFile = new Blob([csvData], {
        type: 'text/csv;charset=utf-8;'
    });
    saveAs(
        dataFile,
        `filename.csv`
    );
};

一个按钮组件使用这个函数,该函数被作为属性传递给它,并被称为'onClick‘。测试如下:

代码语言:javascript
复制
describe('<ExportButton/>', () => {
    let wrapper, props;

    beforeEach(() => {
        props = {
            ...defaultProps,
            handleOnClick: expect.createSpy(),
            downloadFile: expect.createSpy().andReturn(() => {})
        };

        wrapper = shallow(<ExportButton {...props} />);
    });

    afterEach(() => {
        expect.restoreSpies();
    });

   
    it('should call the downloadFile and save the file in location specified', (done) => {
        wrapper.find('Button').simulate('click');
        setTimeout(() => {
            expect(props.downloadFile).toHaveBeenCalled();
            done();
        }, 50);
    });
});

在运行它给出的测试时

ReferenceError:未定义HTMLAnchorElement

at /node_modules/file-saver/src/FileSaver.js:75:19 at /node_modules/file-saver/dist/FileSaver.min.js:1:106 at Object。(/node_modules/file-saver/dist/FileSaver.min.js:1:154)......

错误,测试失败。

有人能告诉我怎么解决这个问题吗?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2020-12-18 06:41:39

在您的测试设置文件中,尝试设置以下内容:

代码语言:javascript
复制
global.HTMLAnchorElement = window.HTMLAnchorElement;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63360885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档