问题标签 [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.
javascript - 在 jest.mock(moduleName, factory) 工厂函数中模拟多个命名导出
我一直在一个小项目中使用 Jest,并且在使用 Jest 模拟时遇到了麻烦。我有一个导出命名自定义错误构造函数的实用程序文件。我需要在我的测试文件中模拟这些函数。我不想使用 Jest 文档中显示的手动模拟技术(即,将模拟文件放入 中__mocks__
),而是我想在测试文件中定义模拟。我在我的测试文件中尝试这样的事情:
但我收到以下错误:
有人可以帮我理解我做错了什么吗?
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 中选择了我的语言和版本,我该如何更改我的节点版本?
在此先感谢您的帮助。
enzyme - Jest 套件不为快照差异输出颜色
我刚刚注意到我正在处理的一个项目中,快照输出没有通过颜色传输到终端。Jest 框架通常有颜色。所以我很困惑:
这是相关软件包的列表:
这是jest.config.js
和setupTestFramework
文件:
任何想法将不胜感激。
更新:适用于单个文件
输出彩色快照:
yarn test <filepath>
不输出彩色快照:
yarn test
(我的yarn test
命令是NODE_PATH=\"./src\" jest --colors
)
reactjs - componentDidMount const 三元运算符的 Jest 单元测试用例
我有componentDidMount
一个常量。我正在尝试涵盖具有三元运算符的 const 的单元测试用例。任何人都可以帮我解决如何涵盖三元运算符条件。
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 语句,它就可以工作!
react-native - JEST 测试失败 - TypeError:无法读取 CRNA Expo 应用程序中未定义的属性“获取”
我不是对 fetch 函数进行单元测试,所以即使像jest-fetch-mock这样的库也无助于摆脱错误。既不axios
也不isomorphic-fetch
运行会yarn test
产生这个。
类似于: *错误:无法读取属性获取。使用 jest-expo 和 react native(可能是重复的,但问题没有详细说明) * Jest throwing TypeError: Cannot read property 'fetch' of undefined
https://github.com/react-community/create-react-native-app/issues/208
脸书/开玩笑#3499
- 脸书/开玩笑#3538
我的屏幕中有一个 fetch 方法(不在我的测试中)。请注意,无论我是否评论/使用我的 fetch 函数,都会发生上述错误。
我怀疑这与我的 babel 或 jest 配置有关。
上面的错误发生在我的.babelrc
下面。改变.babelrc
:
通过删除“es2015”预设会导致另一个错误。请注意,即使没有babel-preset-es2015
devDependency,也会发生这种情况。
我正在使用yarn 1.3.2
& ubuntu 17.04
& Node v9.5.0
&create-react-native-app version: 1.0.0
我的应用组件:
vue.js - VueJS - 使用 vue-test-utils 进行单元测试会出错 - TypeError: _vm.$t is not a function
相对较新的 Vuejs 和测试它的组件。使用 vue-test-utils 和 jest 进行测试。获取以下错误 测试日志
.vue 文件由模板、组件和样式组成。以下是出现错误的 SignupLayout.vue 部分 -
测试文件 -
对 $t 与 sass 有什么关系感到困惑。任何帮助,将不胜感激。现在在这里卡了一段时间。如果需要更多详细信息,请告诉我。提前致谢
reactjs - JSX 单元测试中的 Jest Mock
我有一个 JSX 文件来编写玩笑单元测试。
../dist/容器/索引
在测试文件中,
我收到以下错误。
期望(jest.fn())[.not].toBeCalledWith()
jest.fn() 值必须是模拟函数或间谍。收到:对象:{“a”:“2”}
我想模拟整个 componentwillmount 调用并需要获取 showName,但我总是得到 No Name。有什么支持吗?