【发布时间】:2018-12-28 06:30:00
【问题描述】:
我正在尝试为一个组件编写一个测试用例,它检查如果在窗口对象上触发滚动,是否调用绑定到组件的函数。这是 不使用反应框架虽然我正在使用JEST 作为我的测试框架,它使用 JSDOM,因为它非常好且速度快。
第一个问题是滚动根本没有被触发。在很多 github 问题中阅读它,但没有运气。
第二个问题是我已将其中一个元素的宽度设置为 1000 像素,这是 jsdom 中使用 jest 的沙盒元素。但是当我在它下面添加另一个元素时,它是渲染组件的结果,getClientBoundingRect 的 DOMElement 函数仍然返回全零。
我尝试了一些不起作用的方法:
global.document.dispatch(new Event('scroll'))(这是在调整滚动位置后完成的)在渲染包含大约 19 个
li元素的组件后(每个 li 元素都有一个 10x10 像素的图像和一个标题),我正在尝试检查组件的高度以滚动到该位置,但不幸的是,一切都归零了。
有没有其他方法可以测试或覆盖使用 jsdom/jest 在window.scroll 上调用的函数,我不想使用 phantomjs。
【问题讨论】:
标签: javascript reactjs testing jestjs jsdom