使用 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,因为 jsdom
仅 added support 用于 DOMParser
和 XMLSerializer
十月底。
更新
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 易于使用。希望对您有所帮助。
我有一个使用 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
仅 added support 用于 DOMParser
和 XMLSerializer
十月底。
更新
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 易于使用。希望对您有所帮助。