ReferenceError:未定义html2pdf(JSPDF)

时间:2019-05-25 19:30:52

标签: javascript reactjs enzyme jspdf shallow-copy

用浅浅的渲染编写单元测试时,我遇到错误了

ReferenceError:未定义html2pdf             在/PathToProject/node_modules/jspdf/dist/jspdf.min.js:202:16291

    When I comment out my unit test code whole jspdf code works fine.
    I am surprised why it is failing only when I execute unit test like below -

    import { expect } from "chai";
    import { shallow } from "enzyme";
    import "mocha";
    import * as React from "react";

    const jsdom = require("jsdom-global");
    jsdom();
    import App from "../src/app";

    describe("<App/>", () => {
      it("should do a shallow render of <Provider/>", () => {

        const elem = shallow(<App/>); //this line is creating issue
        expect(elem.find("Provider")).to.have.length(1);
      });
    });

注意:在执行单元测试之前,一切工作都很好。所有的jspdf功能都可以正常工作。但是一旦我通过浅写执行单元测试,就会抛出此错误。

1 个答案:

答案 0 :(得分:1)

回购https://github.com/MrRio/jsPDF/issues/2462中当前存在一个未解决的问题。第二个答复中提到的解决方法可能值得一试。 如果不是,这个问题似乎是在v1.5.1中引入的,而我发现让jspdf与酶完美结合的唯一方法是回到v1.4.1。在1.4.1上,运行测试时出现了一个不同的错误*,但这并不会导致测试失败。

*错误未实现:HTMLCanvasElement.prototype.getContext(未安装canvas npm软件包)-无法通过安装canvas npm软件包解决