小编neo*_*las的帖子

Use Scroll and Width in JSDOM

我正在尝试为组件编写一个测试用例,该测试用例检查如果在窗口对象上触发滚动,是否调用绑定到组件的函数。这没有使用 React 框架,尽管我使用 JEST 作为我的测试框架,它使用 JSDOM,因为它非常好而且快。

第一个问题是滚动根本没有被触发。在很多 github issues 中阅读了有关它的内容,但没有运气。

第二个问题是我已将其中一个元素的宽度设置为 1000 px,这是 jsdom 中使用 jest 的沙箱元素。但是,当我在其下方添加另一个元素(即渲染组件的结果)时, getClientBoundingRect 的 DOMElement 函数仍然返回全零。

我尝试了一些不起作用的事情:

  1. global.document.dispatch(new Event('scroll'))(这是在调整滚动位置后完成的)

  2. 在渲染包含大约 19 个元素的组件li(每个 li 元素都有一个 10x10 px 图像和标题)后,我尝试检查组件的高度以滚动到该位置,但不幸的是一切都变成了 0。

有没有其他方法来测试或覆盖使用 jsdom/jest 调用的函数window.scroll,我不想使用 phantomjs。

javascript testing jsdom reactjs jestjs

5
推荐指数
1
解决办法
2252
查看次数

标签 统计

javascript ×1

jestjs ×1

jsdom ×1

reactjs ×1

testing ×1