问题标签 [babel-jest]

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 投票
1 回答
5795 浏览

javascript - 在 jest.mock(moduleName, factory) 工厂函数中模拟多个命名导出

我一直在一个小项目中使用 Jest,并且在使用 Jest 模拟时遇到了麻烦。我有一个导出命名自定义错误构造函数的实用程序文件。我需要在我的测试文件中模拟这些函数。我不想使用 Jest 文档中显示的手动模拟技术(即,将模拟文件放入 中__mocks__),而是我想在测试文件中定义模拟。我在我的测试文件中尝试这样的事情:

但我收到以下错误:

有人可以帮我理解我做错了什么吗?

0 投票
2 回答
418 浏览

node.js - Semaphore CI ruby​​ 项目上的 Javascript (Jest) 测试

几年来,我使用 Semaphore CI 建立了一个 Ruby on Rails 项目。Semaphore 项目设置为使用 Ruby 2.2.2 作为它的语言。随着时间的推移,该项目采用了带有 browserify 和 babelify 的 npm,并且我们使用了所有最新的 ES6 特性。npm install我们在 Semaphore 构建中添加了一个设置步骤,效果很好。

现在我们开始使用 Jest 来测试我们的 javascript,这在本地运行良好。但是当我添加npm test到我们的信号量测试命令时,npm test信号量 CI 失败并出现以下错误:

这是来自项目的一些相关信息package.json

这是.babelrc位于项目中的文件:

在本地,我在node v7.10.0. 我通过 SSH 进入我的 Semaphore CI 会话并发现它node v4.8.4已安装在那里。我尝试node v4.8.4在我的本地机器上安装并安装了该版本,我在本地得到了与在 CI 上相同的测试错误(上面发布)。所以这是一个节点版本问题。

我补充说:

到我的package.json文件,但这并不影响安装在 Semaphore 上的节点版本。

因此,如果我已经Ruby 2.2.2在 Semaphore Build Settings 中选择了我的语言和版本,我该如何更改我的节点版本?

在此先感谢您的帮助。

0 投票
0 回答
673 浏览

enzyme - Jest 套件不为快照差异输出颜色

我刚刚注意到我正在处理的一个项目中,快照输出没有通过颜色传输到终端。Jest 框架通常颜色。所以我很困惑:

在此处输入图像描述

它应该是什么样子

这是相关软件包的列表:

这是jest.config.js

setupTestFramework文件:

任何想法将不胜感激。

更新:适用于单个文件

输出彩色快照:

yarn test <filepath>

不输出彩色快照:

yarn test

(我的yarn test命令是NODE_PATH=\"./src\" jest --colors

0 投票
1 回答
873 浏览

reactjs - componentDidMount const 三元运算符的 Jest 单元测试用例

我有componentDidMount一个常量。我正在尝试涵盖具有三元运算符的 const 的单元测试用例。任何人都可以帮我解决如何涵盖三元运算符条件。

0 投票
0 回答
2754 浏览

javascript - 开玩笑的测试组件得到“TypeError: (0, _reactRouter.withRouter) is not a function”

这是一个大骗子。

出于某种原因,jest 和 babel 不会导入和转换 react-router 4 的 withRouter。

我最近从 react-router 3 更新到 react-router 4。我的单页应用程序通过 webpack 编译得很好,我可以在浏览器中导航我的本地开发版本。

但是,涉及使用 withRouter HOC 包装的组件的测试会失败。

具体来说,如果正在测试的组件有一个使用 withRouter HOC 的后代组件,你甚至不能导入 withRouter。控制台日志显示 withRouter 被导入为“未定义”

该文件夹包含以下文件。

LoginContainer(一个反应容器组件)

LoginForm/index.js(基本上是一个包装了 LoginForm.jsx 的 HOC)

由于某种原因,我无法在测试时导入 withRouter。所有其他模块都可以正常导入,只有 withRouter 会导致问题。

  • react-router 4.2.0 和 react-router-dom 4.2.2 都作为依赖安装
  • 其他使用 Link 或 Route 之类的组件通过测试就好了

更新

我认为这与 jest + babel 有关。如果我将 import 语句切换为 require 语句,它就可以工作!

0 投票
0 回答
996 浏览

react-native - JEST 测试失败 - TypeError:无法读取 CRNA Expo 应用程序中未定义的属性“获取”

我不是对 fetch 函数进行单元测试,所以即使像jest-fetch-mock这样的库也无助于摆脱错误。既不axios也不isomorphic-fetch

运行会yarn test产生这个。

在此处输入图像描述App.test.js根本没有测试获取:

类似于: *错误:无法读取属性获取。使用 jest-expo 和 react native(可能是重复的,但问题没有详细说明) * Jest throwing TypeError: Cannot read property 'fetch' of undefined

我的屏幕中有一个 fetch 方法(不在我的测试中)。请注意,无论我是否评论/使用我的 fetch 函数,都会发生上述错误。

我怀疑这与我的 babel 或 jest 配置有关。

上面的错误发生在我的.babelrc下面。改变.babelrc

通过删除“es2015”预设会导致另一个错误。请注意,即使没有babel-preset-es2015devDependency,也会发生这种情况。

我正在使用yarn 1.3.2& ubuntu 17.04& Node v9.5.0&create-react-native-app version: 1.0.0

我的应用组件:

0 投票
4 回答
18140 浏览

vue.js - VueJS - 使用 vue-test-utils 进行单元测试会出错 - TypeError: _vm.$t is not a function

相对较新的 Vuejs 和测试它的组件。使用 vue-test-utils 和 jest 进行测试。获取以下错误 测试日志

.vue 文件由模板、组件和样式组成。以下是出现错误的 SignupLayout.vue 部分 -

测试文件 -

对 $t 与 sass 有什么关系感到困惑。任何帮助,将不胜感激。现在在这里卡了一段时间。如果需要更多详细信息,请告诉我。提前致谢

0 投票
12 回答
21296 浏览

node.js - 玩笑无限期挂起,不运行任何测试

每次我开玩笑时它都不会运行任何东西。我已经让计数器任意高了。我用 --no-cache 开玩笑

jest --debug 输出如下:

节点--版本:8.9.4

npm --版本:5.6.0

纱线——版本 1.3.2

有没有人见过类似的东西?有人知道热修复这个吗?

0 投票
1 回答
1028 浏览

reactjs - JSX 单元测试中的 Jest Mock

我有一个 JSX 文件来编写玩笑单元测试。

../dist/容器/索引

在测试文件中,

我收到以下错误。

期望(jest.fn())[.not].toBeCalledWith()

jest.fn() 值必须是模拟函数或间谍。收到:对象:{“a”:“2”}

我想模拟整个 componentwillmount 调用并需要获取 showName,但我总是得到 No Name。有什么支持吗?

0 投票
2 回答
31911 浏览

reactjs - TypeError:无法分配给对象'#的只读属性'x'' React/JEST

While I am writing test case for my react component I am getting

TypeError: Cannot assign to read only property 'x' of object '#'

wherein while the applica

While I am writing test case for my react component I am getting

TypeError: Cannot assign to read only property 'x' of object '#'

wherein while the application run it does not throw similiar error

The code for it is pretty basic

this.props.defaultForm = true;

Why the behavior is different for test and actual application RUN?

What would be work around if I want to write a test case?


how do I toast the number of checked boxes in my RecyclerView?

My code below works perfect when the activity loads with all checkboxes checked, or all checkboxes unchecked, and they are checked or unchecked from that point on, but the problem is that in reality the activity might load with SOME checkboxes checked.

I suppose the key is count = 0; If I could set count to the number of checked boxes when the form loads...

This is what I have in the setOnClickListener(new View.OnClickListener() { of my adapter, works for when all checkboxes start from a checked or unchecked position: