问题标签 [jestjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使 react-router 不会破坏 Jest (reactJs) 测试
我目前正在尝试将 Jest 测试添加到 React 应用程序(在此处找到)。
但是,当我运行以下测试时,
我收到以下错误:
我的应用程序和CategoryPage
组件都专门使用 react-router。CategoryPage 包含一个使用 react-router 进行身份验证的 mixin。根据我自己的调试,我发现当 Jest 尝试调用makeHref
react-router 的内置导航方法之一时发生错误。
为了解决这个问题,我首先尝试调用jest.dontMock('react-router')
,但这没有任何效果。问题似乎是,通过不嘲笑CategoryPage
, jest 将自动且不可逆转地包含其所有依赖项,未嘲笑。
这个问题很难解决的部分原因是因为大多数使用 Jest 和 React 的人似乎没有测试他们的组件,要么是因为他们不是以测试为中心,要么是因为他们使用 Flux 并且只测试 Stores、Dispatchers 等. 我们还没有使用 Flux,所以这不是我们的选择,但可能是我们将来必须过渡到的东西。
编辑 1:如果我删除了测试通过,jest.dontMock('../js/components/CategoryPage.jsx')
那么就不可能实际测试该组件的功能。
编辑 2:当我排除时,jest.dontMock('jquery')
我得到另一个与我用来创建模态的 mixin 相关的错误:
编辑 3:我似乎已经将错误隔离到 react-router 的 Navigation mixin,它调用this.context.makeHref
. React 团队this.context
从 .9 版本开始就弃用了,所以我相信这可能是问题的根源。因此,欢迎任何解决方法或修复this.context
方法。
coffeescript - 使用 Jest 和 TestUtils 测试 React 表单提交
我在submit
使用 React、TestUtils 和 Jest 测试表单事件时遇到问题。
我有一个渲染<form>
DOM 元素的组件;同一个组件还有一个处理onSubmit
事件和记录语句的方法。我的目标是模拟onSubmit
处理程序并断言它被调用。
表单组件.cjsx
__tests__/test-form-component.coffee
相关问题:
node.js - 用咖啡脚本 jsx 开玩笑?
如何使用 Jest 测试用 CoffeeScript + React jsx 编写的 React 组件?
Jest 提供的唯一 CoffeeScript 示例使用普通的 CoffeeScript,并且不适用于 CoffeeScript + React JSX(到达 a 时的语法错误<
)。
我试过的
第一次尝试:execSync
这可行,但需要太多时间(对于虚拟测试来说,12 秒很好)。
然后我尝试了:
第二次尝试:coffee-react-transform
这会引发一个奇怪的错误,例如:
TypeError: function() {...} 没有方法'getPooled'
“没有方法'getPooled'”的唯一谷歌结果是这个要点,它准确地显示了我得到的错误,但没有提供其他见解。
第三次可能的尝试
我想我可以使用coffee-reactify,但它返回一个异步流,而 in 中的process
函数preprocess.js
是同步使用的,到目前为止还没有办法同步读取流。
我能做些什么?
jquery - 使用 jQuery 反应组件而不需要 - 开玩笑的单元测试
我有一个非常简单的 React mixin,它使用 jQuery 来触发事件
这作为使用 browserify 的一组新组件的一部分导入主站点。由于拥有这些组件的主站点将始终包含 jQuery,因此我不想在 browserify 中使用 jQuery,因为它会被复制。
就行为而言,这不是问题 - 但是在运行 jest 以使用此 mixin 对组件进行单元测试时会引发问题,从而引发错误。
我知道我可以通过 browserify 包含 jQuery 来解决这个问题,但这会将 2 个副本加载到我的网站中。
有什么办法可以开玩笑地告诉我的反应组件 jQuery 已经存在于窗口中而不用担心它?
bower - 玩笑测试中的 Jest 和 Bower 模块加载
假设我有一个使用 bower、grunt、bowerify(使用 shim)的项目,因为我非常喜欢 Jest,所以我想用它来测试。当我运行测试时,我怎么会开玩笑地看到我的 browserify shim 模块。我使用 grunt 来启动 npm test 命令。这是我的 package.json 文件。
现在,在运行测试之前,我几乎可以通过在我的 grunt 文件中执行此操作来解决此问题。
和。
问题是使用browserify,所以将浏览器的所有内容与我的设置结合起来效果很好,我可以像这样要求我的垫片模块。
require('jquery') //example
但是在开玩笑的cli中,测试失败了,因为他们可以找到模块,除非我以某种方式在它前面加上./,就像这样require('./jquery')
javascript - 如何使用 ES6 模块模拟单元测试的依赖关系
我正在尝试使用 webpack + traceur 来处理 Ecmascript 6 模块以转换为 ES5 CommonJS,但我无法成功对它们进行单元测试。
我尝试使用 Jest + traceur 预处理器,但自动模拟和依赖项名称似乎变得古怪,而且我似乎无法让 sourceMaps 与 Jest 和节点检查器调试一起使用。
是否有更好的框架来对 ES6 模块进行单元测试?
reactjs - 如何使用 Jest 测试连接到存储的 React 视图?
我有一个与store通信的React 视图。我已经成功地分别测试了视图和商店,但没有组合在一起。
我遵循了此处记录的结构,但收到了TypeError。看起来 Jest 正在尝试将商店注册为组件,即使我使用dontMock
.
我已经包含了我认为是下面的相关代码,但如有必要,可以完整提供。
查看笑话测试
谢谢!
jasmine - 我是否需要在 Jest 测试中模拟所需的模块
我有一个mixin/Utils.js
要测试的地方underscore
,模块中需要和使用的地方。就像是:
当我尝试使用 Jest 对其进行测试时,我做了如下的事情。但是测试失败了。我有一种感觉,因为我没有嘲笑underscore
. 但是我应该如何嘲笑呢?一般来说,如果模块具有类似的依赖项underscore
,我应该如何正确设置模拟并测试模块?
});
javascript - ReactJS:测试包含组件的组件
我使用 Jest 来测试我的 React 组件。但是,我不知道(或没有看到任何东西)如何测试将方法(作为道具)传递给子组件的组件。例如,我有:Form
, MemberList
, Member
, FormButton
. 代码中与此类似的东西:
形式:
会员名单:
成员:
表单按钮:
我的思维方式是否正确?补充一下,有没有实际的例子?
*在尝试 React 和 Jest 之前我从未测试过。
reactjs - 开玩笑的 React + Material UI 测试
我将此库用于 UI:https ://github.com/callemall/material-ui并使用 Jest 进行单元测试。
但是当我需要一个组件使用该库时,我得到了错误语法错误。其他组件是开玩笑的。
我在下面的 package.json 更新了笑话:
这没用。