我有一个使用 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,因为
jsdom
仅在 10 月底添加了对 DOMParser
和
XMLSerializer
的支持。
更新 Jest v11 以上
JSDom不支持。您需要为此配置自定义环境。这里是他们的文档的链接,这里是一个易于使用的自定义 jsdom 环境的链接。我希望这有帮助。