使用 Yes 测试 DOMParser

Test DOMParser using Jest

我有一个使用 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?

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

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

您很可能还需要最新版本的 Jest,因为 jsdomadded support 用于 DOMParserXMLSerializer 十月底。

更新

JSDom not supported above v11 by Jest. You'll need to configure a custom environment for this. Here is a link to their documentation and here is a link to a custom jsdom environment 易于使用。希望对您有所帮助。