问题标签 [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.

0 投票
2 回答
3579 浏览

javascript - 使 react-router 不会破坏 Jest (reactJs) 测试

我目前正在尝试将 Jest 测试添加到 React 应用程序(在此处找到)。

但是,当我运行以下测试时,

我收到以下错误:

我的应用程序和CategoryPage组件都专门使用 react-router。CategoryPage 包含一个使用 react-router 进行身份验证的 mixin。根据我自己的调试,我发现当 Jest 尝试调用makeHrefreact-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方法。

0 投票
2 回答
2970 浏览

coffeescript - 使用 Jest 和 TestUtils 测试 React 表单提交

我在submit使用 React、TestUtils 和 Jest 测试表单事件时遇到问题。

我有一个渲染<form>DOM 元素的组件;同一个组件还有一个处理onSubmit事件和记录语句的方法。我的目标是模拟onSubmit处理程序并断言它被调用。

表单组件.cjsx

__tests__/test-form-component.coffee

相关问题:

0 投票
3 回答
2394 浏览

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是同步使用的,到目前为止还没有办法同步读取流。

我能做些什么?

0 投票
3 回答
11525 浏览

jquery - 使用 jQuery 反应组件而不需要 - 开玩笑的单元测试

我有一个非常简单的 React mixin,它使用 jQuery 来触发事件

这作为使用 browserify 的一组新组件的一部分导入主站点。由于拥有这些组件的主站点将始终包含 jQuery,因此我不想在 browserify 中使用 jQuery,因为它会被复制。

就行为而言,这不是问题 - 但是在运行 jest 以使用此 mixin 对组件进行单元测试时会引发问题,从而引发错误。

我知道我可以通过 browserify 包含 jQuery 来解决这个问题,但这会将 2 个副本加载到我的网站中。

有什么办法可以开玩笑地告诉我的反应组件 jQuery 已经存在于窗口中而不用担心它?

0 投票
2 回答
1706 浏览

bower - 玩笑测试中的 Jest 和 Bower 模块加载

假设我有一个使用 bower、grunt、bowerify(使用 shim)的项目,因为我非常喜欢 Jest,所以我想用它来测试。当我运行测试时,我怎么会开玩笑地看到我的 browserify shim 模块。我使用 grunt 来启动 npm test 命令。这是我的 package.json 文件。

现在,在运行测试之前,我几乎可以通过在我的 grunt 文件中执行此操作来解决此问题。

和。

问题是使用browserify,所以将浏览器的所有内容与我的设置结合起来效果很好,我可以像这样要求我的垫片模块。 require('jquery') //example但是在开玩笑的cli中,测试失败了,因为他们可以找到模块,除非我以某种方式在它前面加上./,就像这样require('./jquery')

0 投票
5 回答
28206 浏览

javascript - 如何使用 ES6 模块模拟单元测试的依赖关系

我正在尝试使用 webpack + traceur 来处理 Ecmascript 6 模块以转换为 ES5 CommonJS,但我无法成功对它们进行单元测试。

我尝试使用 Jest + traceur 预处理器,但自动模拟和依赖项名称似乎变得古怪,而且我似乎无法让 sourceMaps 与 Jest 和节点检查器调试一起使用。

是否有更好的框架来对 ES6 模块进行单元测试?

0 投票
1 回答
1674 浏览

reactjs - 如何使用 Jest 测试连接到存储的 React 视图?

我有一个与store通信的React 视图。我已经成功地分别测试了视图和商店,但没有组合在一起。

我遵循了此处记录的结构,但收到了TypeError。看起来 Jest 正在尝试将商店注册为组件,即使我使用dontMock.

我已经包含了我认为是下面的相关代码,但如有必要,可以完整提供。

查看笑话测试

谢谢!

0 投票
1 回答
1257 浏览

jasmine - 我是否需要在 Jest 测试中模拟所需的模块

我有一个mixin/Utils.js要测试的地方underscore,模块中需要和使用的地方。就像是:

当我尝试使用 Jest 对其进行测试时,我做了如下的事情。但是测试失败了。我有一种感觉,因为我没有嘲笑underscore. 但是我应该如何嘲笑呢?一般来说,如果模块具有类似的依赖项underscore,我应该如何正确设置模拟并测试模块?

});

0 投票
1 回答
1253 浏览

javascript - ReactJS:测试包含组件的组件

我使用 Jest 来测试我的 React 组件。但是,我不知道(或没有看到任何东西)如何测试将方法(作为道具)传递给子组件的组件。例如,我有:Form, MemberList, Member, FormButton. 代码中与此类似的东西:

形式:

会员名单:

成员:

表单按钮:

我的思维方式是否正确?补充一下,有没有实际的例子?

*在尝试 React 和 Jest 之前我从未测试过。

0 投票
1 回答
1844 浏览

reactjs - 开玩笑的 React + Material UI 测试

我将此库用于 UI:https ://github.com/callemall/material-ui并使用 Jest 进行单元测试。

但是当我需要一个组件使用该库时,我得到了错误语法错误。其他组件是开玩笑的。

我在下面的 package.json 更新了笑话:

这没用。