使用Jest测试DOMParser

时间:2018-10-09 11:43:13

标签: javascript unit-testing jestjs domparser

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

1 个答案:

答案 0 :(得分:3)

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

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

您也很可能需要Jest的最新版本,因为jsdomDOMParser的{​​{1}}仅added support在十月下旬。

更新

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