【问题标题】:ReferenceError: html2pdf is not defined (JSPDF)ReferenceError: html2pdf 未定义 (JSPDF)
【发布时间】:2019-05-25 19:30:51
【问题描述】:

我在使用浅渲染编写单元测试时遇到错误

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 功能都运行良好。但是一旦我通过写浅层执行单元测试,它就会抛出这个错误。

【问题讨论】:

    标签: javascript reactjs enzyme jspdf shallow-copy


    【解决方案1】:

    目前在 repo https://github.com/MrRio/jsPDF/issues/2462 中有一个未解决的问题。第二个回复中提到的解决方法可能值得一试。 如果没有,这个问题似乎是在 v1.5.1 中引入的,我发现让 jspdf 与酶很好地配合的唯一方法是回到 v1.4.1。在 1.4.1 上,我在运行测试时收到不同的错误*,但它不会导致测试失败。

    *错误是未实现:HTMLCanvasElement.prototype.getContext(不安装canvas npm包) - 安装canvas npm包也没有解决

    【讨论】:

      猜你喜欢
      • 2018-05-27
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-25
      • 2021-12-17
      • 2012-08-24
      • 2014-05-25
      相关资源
      最近更新 更多