我创建了一些svg元素,并希望确定其大小
svgElement.getBoundingClientRect()
如果将svgElement附加到文档中,我的代码将起作用
document.body.appendChild(svgElement)
以及是否在浏览器(谷歌浏览器)中运行代码。
但是,在使用nodejs和jest进行测试时,结果边界rect的宽度和高度始终为零。
=>我该怎么做才能用nodejs正确运行代码?
最佳答案
Node.js使用jsdom,而实现getBoundingClientRect
仅返回正确的属性,而不返回正确的值。
另请参见https://github.com/jsdom/jsdom/issues/653
对于测试,应该模拟方法getBoundingClientRect
,例如:
spyOn(svgElement,'getBoundingClientRect').and.returnValue({
width: 10,
height: 10,
top: 0,
left: 0,
right: 10,
bottom: 10
});
关于javascript - svgElement.getBoundingClientRect()在使用Node.js进行测试时始终返回零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60816461/