首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript 测试系列实战(一):使用 Jest Enzyme 测试 React 组件

本篇教程是 JavaScript 测试系列实战 的第一篇教程,首先介绍了测试的类型,然后主要通过一个 React 项目教会你如何使用 Jest 编写第一个测试,然后使用 Enzyme 对 React 组件进行浅层渲染...E2E 测试的重点是在我们正在运行的应用程序中模拟实际用户(例如模拟滚动、单击键入等行为),并检查我们的应用程序是否从实际用户的角度运行良好。...因此这里建议直接使用 npx jest 执行测试。 编写第一组测试 每个测试文件通常有多个测试用例。Jest 允许我们通过 describe 函数对测试用例进行分组,它创建了一个可以组合多个测试的块。...Jest 测试文件中使用它。...配置 jest-enzyme 你应该还记得,在刚才的测试代码中,我们还是使用Jest 自带的 Matcher(toEqual)。

2.9K10

使用jest进行单元测试

今年的不幸与坎坷使我有很长一段时间去思考人生,不想将就了,鲁棒健壮的程序,开发测试应该是分得很开的,于是我选择jest去做单元测试这件事。...不扯犊子直接说吧,第一点,用数据、用茫茫多的测试用例去告诉使用者,你的程序是多么鲁棒健壮;第二点,把它作为一种素养去培养吧,当你按照一系列规范去做事,那么你做出来的东西,我想是有品质在的。...jest的相关配置 package.json中相关scripts 这里笔者罗列了常用的通用的一些关于jest的脚本,后面测试结果会陆续补充一些测试脚本,以上的脚本都编写在package.json文件下的.../test/caculator.test.js --watch": 单文件监视测试 "test:watchAll": "jest --watchAll": 监视所有文件改动,测试相应的测试。...大致基础类的脚本测试就总结到这里,接下来我们看下jest.config.js的相关配置。

3.5K60
您找到你想要的搜索结果了吗?
是的
没有找到

使用Jest测试原生TypeScript项目

通过官网的Getting started 我们可以在最下方找到 ts-jest 不难理解,我们需要配的其实就是jest加载到什么样类型的文件,使用什么预处理来处理文件。...如果是js文件我通过babel-jest处理,css则使用jest-css-modules。假如没有这些配置,那import了你的库,库里有引入了高特性的js文件,或者css文件就会编译报错。...写完了测试,给我们的jest.config 多加一行配置,来生成我们的测试报告(Jest内置了 istanbul) javascript module.exports = { // ... collectCoverage...然后我们push测试一下,在这里我写错了我的文件路径,所以构建报错了。 重新修复了问题后,就可以正常运行工作了。 由于本文不是重点介绍CI,这里就不过多展开了,有兴趣的朋友可以自己摸索下。...总结 至此,你应该对前端UI测试应该大致有一个宏观的了解。 本文没有过多得介绍Jest的用法或者语法,希望可以给不知道如何做测试的朋友们一点方向,自己去尝试找到适合自己项目的才是最好的。

2.8K60

使用 Jest 进行前端单元测试

Jest 默认使用 Jasmine 语法,支持直接使用 Promise async/await 进行异步测试,支持对 React 组件进行快照监控, 扩展集成 Babel 等常用工具集也很方便。...Mock Jest 自带一个 mock 系统,并支持自动手动 mock。 通常项目中,要测试的文件可能带有很多调用依赖,另外单元测试环境真实环境可也能存在差异,使得脱离真实环境不能直接运行。...例如使用 jest.useFakeTimers() 把遇到的计时器挂起,在必要时再使用 jest.runOnlyPendingTimers() 执行掉已经挂起的计时器。...要了解更多可以阅读 官方文档 [附3] enzyme [附4] 。 异步支持 如果有使用过 node-tap 之类的老测试框架,在遇到异步情况时候肯定感受过麻烦了。...下图为在 react-native 源项目中执行 verbose 的 jest test 时,控制台的实时输出: ? Jest 的覆盖率统计: ? 详细报错定位: ?

5.5K90

自动化测试 Jest使用总结基础篇

使用 jest 的原因 随着前端的发展,web的交互越来越复杂,自动化测试是非常有必要融入到开发的流程中,而目前界内普遍通用且比较火的就是有 facebook开发的 Jest 这套工具。...他可以创建测试用例,执行测试,自身还有驱动mock,且用起来也是很方便,正如 jest 的官网这样描述 jestJest is a delightful JavaScript Testing Framework...jest 做回调操作测试需要注意,函数的回掉情况。...async / await 使用 async / await 标记,进行异步校验,本质上 promise 的异步校验没有什么区别,只是使用 async / await 是可以获取结果之后在下一步校验,...钩子函数的使用 钩子执行 再执行测试文件的时候,如果有需要对函数进行特殊处理的可以在执行前执行后使用钩子函数,beforeEach and afterEach。

2.7K111

React Native自动化测试

我们期待你能帮助我们提高测试覆盖率,以及提供更多的测试代码或是测试用例。 使用Jest测试 Jest是在命令行通过node来执行的纯js测试工具。测试代码放置在__tests__目录下。...有一些功能我们还没有完成模拟(jest中需要模拟一些接口),因而没有纳入测试,以避免测试不通过提高测试速度,但我们正在尽最大努力去逐渐补完这些功能的模拟。...你可以在react-native源代码的根目录中使用如下命令来运行现有的jest测试代码: npm test 我们建议你在贡献代码的时候也添加自己的测试代码。...运行下面的命令来执行这些测试: $ cd react-native $ ....确保你正确安装配置了Android NDK,具体配置参见这篇文档,然后运行下面的命令来执行测试: $ cd react-native $ npm install $ .

3K60

提高代码质量——使用JestSinon给已有的代码添加单元测试

现在,我们可以使用单元测试来提高自己的代码质量。下面,我将自己在使用JestSinon.js配置编写单元测试中的收获的经验踩到的坑进行总结,根据从零开始配置编写单元测试这一条线来进行分享。...Jest配置 安装依赖包 需要使用Jest,首先你需要进行安装,执行以下命令: npm install jest -D 如果你的项目中存在.babelrc文件(使用了babel 6)时,不论你测试的代码是否通过...编写单元测试 在本章中,我们会针对如何编写单元测试文件进行一个具体的讲解,其中包含: 同步函数测试 异步函数测试 HTTP测试 同时,我们会对当中使用到的JestSinon.js的API会进行简单介绍...,如果需要使用其他的API,可以自行阅读JestSinon.js的文档。...异步函数测试 异步函数主要分为两种——Callback方式Promise方式。这两种方式都很简单,下面我们对两种方式进行具体的介绍。详细内容可以见Jest文档中的测试异步代码。

3.7K00

使用Jest测试包含setTimeout调用的函数踩坑记录

猜测JS的事件循环有关,于是我去搜索了相关资料: 在JS中有一个“事件循环”,JS运行时在每一轮Tick时,都会检查事件队列中是否有回调,如果有那么就会将它取出并执行。...虽然从错误信息中我们知道可以通过jest.setTimeout来修改这个默认超时时间,但这个测试用例在实际运行的时候也的确需要等待6s,如果我们有什么测试用例需要等待几分钟甚至几小时,那总不能在CI上卡个几小时等待用例通过吧...在启用fake timer的时候,setTimeout、setInterval都会使用Jest提供的假实现,他们不会真正阻塞住测试用例。...相应地,Jest还提供了advanceTimersByTime函数,可以将Jest运行测试用例时的假时钟向前拨动,并“按时”运行之前通过setTimeout、setInterval传入的回调。...这里首先我们需要了解“微任务(micro-task)”“宏任务(macro-task)”。前面提到JS运行时中有一个事件队列,实际上有两个队列:微任务队列宏任务队列。

6.6K60

基于TypescriptJest刷题环境搭建与使用

写在前面 前几个月在公司用vue3 https://v3.vuejs.org/ts写项目,想巩固一下基础,于是我想起了去年基于JavaScriptJest搭建的刷题环境https://zhengjiangtao.cn.../coding,不如,给它搞个加强版,结合TypescriptJest https://jestjs.io/搞一个刷题环境https://zhengjiangtao.cn/coding-ts/,下面是我的一些使用心得...Jest是一个测试框架,具体的可以看我早年写的文章https://www.cnblogs.com/cnroadbridge/p/13524099.html, Babel是一个语言编译器,具体的也可以看我早年写的文章...这里以两数之和为例,做一个简单的代码测试,具体的如下: 源码 // code/sum.ts 两数之和测试案例 type sumType = (a: number, b: number) => number...number = 3; let res: number = sum(x, y); expect(res).toBe(expected); }); 在项目文件下执行yarn test 我们查看下运行的效果

1.2K40

干货 | 携程租车React Native单元测试实践

一、技术选型: Jest + Enzyme + react-hooks-testing-library 1.1 jest Jest是FaceBook出品的前端测试框架,适合用于ReactReact.../jest.setup.js'], //运行测试前需运行的初始化文件,例子在下方 moduleNameMapper: { //需要模拟的静态资源 '\\....@ctrip|react-native)'], //transform白名单 }; 三、Jest简单函数单元测试测试函数 function add(x, y) { return x + y;...(() => { console.log('每个测试用例测试完毕后运行'); }); 五、Jest Mock函数 在单元测试中,有许多对象或函数并不需要真实的引用,因此需要mock。...快照将在测试文件的当前文件路径自动生成的snapshots文件夹中保存。当主动修改造成ui变化时,使用jest -u来更新快照。

6K30

2020 年你应该知道的 React 库

它提供了测试运行程序、断言库监视(spying)/模拟(mocking)/stubbing 功能, 一个全面的测试框架中需要的所有东西。...至少,您可以使用 React-test-renderer 在 Jest 测试中渲染 React 组件。这已经足以用 jest 来执行所谓的快照测试了。...快照测试的工作方式如下: 运行测试之后,将创建 React 组件中渲染的 DOM 元素的快照。当您在某个时间点再次运行测试时,将创建另一个快照,用作前一个快照的差异。...最终,您会发现自己在使用 Enzyme 或 React Testing Library (这两个都在 Jest 测试环境中使用)来进行更详细的测试功能集。...数据库: Firebase Ui 库: none 或 UI 组件库 表单库: none 或 Formik 或 React Hook Form 测试库: Jest with React Testing

14.4K40

xcode工程集成 React-native步骤

需要做额外的工作,需要在~/.bashrc, ~/.profile, ~/.zshrc文件中(如果没有自己创建),添加如下的一行语句: . ~/.nvm/nvm.sh 这样就能够在任意的终端中使用...2.集成React-native 新建一个xcode工程添加配置文件 新建一个文件夹NativeRNApp,再在该文件夹下新建一个name为NativeRNApp的Xcode工程,与xcode工程同目录新建一个...-alpha.6", "react-native": "0.44.0" }, "devDependencies": { "babel-jest": "20.0.3...": "16.0.0-alpha.6" }, "jest": { "preset": "react-native" } } 注意name:改成自己项目工程名字。...进入 reactnative目录 ,然后命令行启动服务: react-native start 4.运行iOS项目 启动工程,直接运行代码: ReactViewController * vc = [[

2.2K10

如何使用ReactFirebase搭建一个实时聊天应用

使用ReactFirebasee搭建一个实时聊天应用,需要以下几个步步骤:创建一个React项目,并安装Firebasereact-firebase-hooks作为依赖项。...使用Firebase Authentication来实现用户登录注册功能,并使用react-firebase-hooks/auth来获取用户状态。...使用Cloud Firestore来存存储同步聊天室消息,并使用react-firebase-hooks/firestore来获取消息数据。...然后,在终端中运行以下命令来安装这两个依赖项:npm install firebase react-firebase-hooks3.使用Firebase Authentication在src文件夹下打开...最后,它使用了一个表单来显示输入框发送按钮,并使用Message组件来渲染每条消息的内容。这就是使用ReactFirebasee搭建一个实时聊天应用的基本步骤简单代码示例。

45941

React Native单元测试

概述 所谓单元测试,就是对每个单元进行的测试,一般针对的是函数、类或单个组件,不涉及系统集成,单元测试是软件测试的基础测试,一个完备的软件系统都会涉及到单元测试。...目前,Javascript的测试工具很多,但是针对React的测试主要使用的是Facebook推出的Jest框架,Jest是基于Jasmine的JavaScript测试框架,具有上手容易、快速、可靠的特点...相比其他的测试框架,Jest具有如下的一些特点: 适应性:Jest是模块化、可扩展可配置的; 沙箱快速:Jest虚拟化了JavaScript的环境,能模拟浏览器,并且并行执行; 快照测试Jest能够对...环境搭建 安装Jest 首先,在项目目录下使用下面的命令安装Jest。...npm install --save-dev jest //或者 yarn add --dev jest 如果你使用的是react-native init命令行方式来创建的RN项目,且RN版本在0.38

86220

停止使用CICD工具运行测试

随着 CI/CD 工具工作流的出现,使用 CI/CD 来运行测试 也变得很自然。毕竟,测试是软件交付生命周期的一部分,并且在构建和部署中将测试执行自动化在概念层面上是有意义的。...此外,在开发过程中本地运行测试通常使用相应的测试工具直接“手动”运行,这通常远非测试或生产环境。 3....大规模运行测试 大规模运行自动化测试 包含两个向量: 扩展负载测试以生成大量负载,以模拟应用程序或 API 的峰值使用场景。...使用 Kubernetes 运行所有测试,提供一致且可扩展的执行环境。 允许在需要时运行测试,包括作为 CI/CD 的一部分、手动运行、通过外部触发器运行等。...这些管道可以在需要时运行,但单个测试不能运行。 所有测试结果都可以在这些管道的输出中找到,但如果使用多个测试工具,它们仍然会断开连接。

6010
领券