小编ttr*_*rmw的帖子

测试使用 jQuery 和 window 对象的 React 组件

我的 React 组件必须响应resize事件,我使用的是 jQuery,即:

//...
componentDidMount: function() {
  $(window).on("resize", function);
}
//..
Run Code Online (Sandbox Code Playgroud)

但是,这会导致我的 Jest 测试出现问题,特别是:

- TypeError: Cannot read property 'on' of undefined
    at RadiumEnhancer.React.createClass.componentDidMount (bundles/Opportunities/OpportunityPartial.jsx:21:14)
Run Code Online (Sandbox Code Playgroud)

在单步执行测试时,看起来 window 是在 jest 测试中定义的,但$(window)似乎没有返回任何内容。

我的印象是 Jest 会检查所需的模块 (jQuery) 的 API 来构建它的模拟,但是如果我正确理解了问题,这似乎不会发生?

我可以通过不嘲笑 jQuery 来解决这个问题,但显然这不是完全可取的。

javascript jquery unit-testing reactjs jestjs

6
推荐指数
1
解决办法
1827
查看次数

标签 统计

javascript ×1

jestjs ×1

jquery ×1

reactjs ×1

unit-testing ×1