【问题标题】:Test DOMParser using Jest使用 Jest 测试 DOMParser
【发布时间】:2018-10-09 11:43:12
【问题描述】:

我有一个使用 DOMParser 解析 XML 的方法,如下所示:

this.parseXmlString = function(xmlDocStr) {
    var xmlDoc;
    var parser= new window.DOMParser();

    xmlDoc = parser.parseFromString( xmlDocStr, "text/xml" );
    // here I do some stuff with xmlDoc

    return xmlDoc;
};

问题是:当我尝试使用此函数的 Jest 进行单元测试时,window.DOMParser 未定义。测试很简单:

expect(x2js.parseXmlString(xmlDocStr)).toMatchObject(expectedObject);

有什么方法可以在 Jest 单元测试中使用 DOMParser?

【问题讨论】:

    标签: javascript unit-testing jestjs domparser


    【解决方案1】:

    您不需要window 引用。只需使用new DOMParser()...。确保您的 Jest 配置中有 "testEnvironment": "jsdom"(不过应该是 default)。

    我在这里创建了一个示例。 https://repl.it/@ChrisPaton/FlusteredNearDecimal

    您很可能还需要最新版本的 Jest,因为 jsdom 只有 added support 用于 DOMParserXMLSerializer 在 10 月下旬。

    更新

    JSDom 是 not supported 高于 v11 的 Jest。您需要为此配置自定义环境。这是他们的documentation 的链接,这是一个易于使用的custom jsdom environment 的链接。我希望这会有所帮助。

    【讨论】:

    • 我终于做了一个解决方法来完成这个,但你的答案要好得多。
    猜你喜欢
    • 1970-01-01
    • 2017-07-27
    • 2020-05-08
    • 2019-10-26
    • 2020-06-14
    • 2018-07-26
    • 2020-11-24
    • 2018-06-10
    • 2020-11-06
    相关资源
    最近更新 更多