gpt4 book ai didi

javascript - 使用 nodejs 进行测试时,svgElement.getBoundingClientRect() 始终返回零

转载 作者:行者123 更新时间:2023-12-02 21:22:14 31 4
gpt4 key购买 nike

我创建了一些 svg 元素并想用

确定其大小
svgElement.getBoundingClientRect()

如果 svgElement 使用

附加到文档中,我的代码就可以工作
document.body.appendChild(svgElement)

如果我在浏览器中运行代码(google chrome)。

但是,在使用 nodejs 和 jest 进行测试时,生成的边界矩形的宽度和高度始终为零。

=>如何才能使用 Nodejs 正确运行代码?

最佳答案

Nodejs 使用 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 - 使用 nodejs 进行测试时,svgElement.getBoundingClientRect() 始终返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60816461/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com