我有一个使用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吗?
答案 0 :(得分:3)
您不需要window
参考。只需使用new DOMParser()...
。确保您的Jest配置中有"testEnvironment": "jsdom"
(不过应该是default)。
我在这里创建了一个示例。 https://repl.it/@ChrisPaton/FlusteredNearDecimal
您也很可能需要Jest的最新版本,因为jsdom
和DOMParser
的{{1}}仅added support在十月下旬。
更新
Jsm比v11高not supported。您需要为此配置自定义环境。这是指向他们的documentation的链接,这是指向易于使用的custom jsdom environment的链接。我希望这会有所帮助。