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

JavaScript测试教程-part 2:引入 Enzyme 并测试 React 组件

Enzyme 基础 Enzyme 是一个库,用于在测试处理你 React 组件。由 Airbnb 开发。 设置 Enzyme 继续上一篇文章内容,假设你 Jest 已经能够工作了。...)).toEqual(true); 9 }); 10}); 在这个简单测试,我们正在检查 App 组件是否包含某个标头。运行 npm run test 后,你会看到一条成功消息。...这里要注意一个非常重要点:即使我们用了 Enzyme,但测试运行程序仍然是 Jest。由于我们用是 expect 函数,因此可以使用各种可供调用匹配器函数。已经在课程第一部分中提到了它们。...要将其与 Jest 一起使用,请安装 jest-enzyme 包。 1npm install jest-enzyme 最后要做是将其导入 setupTests 文件。...在编写单元测试工作得很好。在本教程后续部分将介绍其他类型渲染,并学习如何测试程序不同部分。它将包括快照测试和模拟数据之类技术。下次见!

1.4K50

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

您可以测试应用程序许多方面,从单个函数及其返回值到在浏览器运行复杂应用程序。万丈高楼平地起,让我们先来了解一有哪些测试。...Jest 测试,我们来详细讲解一: 我们先导入需要测试单元/模块 test 函数定义了一个测试用例,第一个参数就是用例描述,一般是一句完整描述,例如上面的 dividing 6 by 3 equals...Jest 你不知措。...允许我们在运行测试,只渲染父组件而不渲染其所有的子组件。浅层渲染十分快速,因此非常适合单元测试。...运行 npm test ,查看测试结果,全部通过: PASS app/App.test.js PASS app/components/ToDoList/ToDoList.test.js Test

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

Jest来给React完成一次妙不可言~单元测试

严重时候甚至会出现改了一行代码,却不清楚其影响范围情况。这种时候,就需要测试方式,来保障我们应用质量和稳定性了。 接下来,让我们学习,如何 React 应用写单元测试吧?...触发事件通常会触发应用程序一些更改,因此我们必须执行一些断言来确保这些更改发生。在我们测试,这样做一个好方法是确保呈现用户计数已经更改。...注意:这个AAA模式并不特定于测试库。事实上,甚至是任何测试用例一般结构。在这里向您展示这个是因为发现测试库如何方便地在每个部分编写测试是一件很有趣事情。...现在,要运行测试,打开您终端并导航到项目的根目录,并运行以下命令: npm test 因此,它将创建一个新文件夹 __snapshots__ 和一个文件 App.test.js: App.test.js.snap...现在我们要测试三件事: •如果HTTP请求已经正确完成•如果使用url完成了HTTP请求•如果获取数据符合期望。 对于第一个测试,我们只检查加载消息在没有数据要显示是否显示。

14.8K33

Jest 进行 JavaScript 测试

Jest 是目前最受欢迎测试运行器之一,也是 Create React App 默认选择。 首先要做事情:怎么知道要测试些什么? 当谈到测试,即使是简单代码块也会使初学者瘫痪。...作为一个精通测试 JavaScript 开发人员,你想要遵循测试驱动开发,这是一个强制在开始编码之前编写失败测试学科。 默认情况Jest 希望在项目下名为 tests 文件夹中找到测试文件。...每次开始为功能编写一套新测试,都会将其包含在 describe 块。正如你看到需要两个参数:一个用于描述测试套件字符串,还有一个用于包装实际测试回调函数。...": true, "coverageReporters": ["html"] }, 现在,每次运行 npm test ,你都可以在项目文件夹访问名为 coverage 新文件夹:getting-started-with-jest...Jest 可以顺利地测试 React 应用(JestReact 均来自 Facebook 工程师)。Jest 也是 Create React App 默认测试器。

2.7K30

React单元测试Jest + Enzyme(一)

后端提供给前端接口需要保证质量,因此需要做单测,但前端很少需要提供接口其他人 其实,大体上是同意以上观点。...在大部分情况,如果公司业务不复杂,是完全没必要做单测。...Jest是Facebook开发一个测试框架,集成了测试执行器、断言库、spy、mock、snapshot和测试覆盖率报告等功能。...jest __jest__/__tests__" } 此时在命令行输入npm run test,出现以下结果,说明Jes安装成功并通过第一个测试: 总结 按照上面说步骤,如果一切顺利,你第一个单测用例应该成功跑起来了...我们来回顾我们都做了些什么: 安装Jest并让其支持ES6语法 新建对应单测文件夹并新建一个单测文件 针对项目的webpack做相应Jest配置 配置运行测试脚本 万事开头难,你已经踏出万里长征第一步了

1.4K20

JavaScript 测试教程 part 1:用 Jest 进行单元测试

首先,将介绍单元测试基础知识,即测试应用程序每个部分并检查它们是否适合使用。为此我们将使用 Facebook 开发测试框架 Jest已经准备就绪,并具有进行测试所需功能。...目标之一是通过现成可用工具提供“零配置”体验。已经存在了一段时间,并且快速可靠。 1npm install --save-dev jest 别忘了把添加到 npm 脚本。...默认情况,如果它们位于 tests 目录或以 test 或 .spec 为后缀,将执行 .js 和 .jsx 文件。...超时默认为 5 秒,并指定如果测试花费时间太长,则中止测试之前要等待多长时间。 expect 函数用于测试值。作为参数,接受你要测试值:在我们例子,它是 divide 函数返回。...涵盖第一类测试是“单元测试”。为了执行它们,我们已经了解了 Jest 框架基础知识。包括有关如何运行测试(安装和文件命名)知识。

2.8K20

前端单元测试Jest

这里列举4个主要生命周期勾子: afterAll(fn, timeout): 当前文件所有测试执行完成后执行 fn, 如果 fn 是 promise,jest 会等待timeout 毫秒,默认 5000...expect(2 + 2).toBe(4) }) mock mock测试就是在测试过程,对于某些不容易构造或者不容易获取对象,用一个虚拟对象来创建以便继续进行测试测试方法。...当有异步方式运行代码时候,Jest需要知道当前测试代码是否已经完成,然后才可以转移动另一个测试,也就是说,测试用例一定要在测试对象结束之后才能够运行。...Snapshot 快照测试第一次运行时候会将被测试ui组件在不同情况渲染结果保存一份快照文件,后面每次再运行快照测试,都会和第一次比较,除非执行“yarn test – -u”命令删除快照文件...[`react-comp snapshot test2 1`] = ` react组件 `; 如果被测试代码有正常更新,可以使用“jest --updateSnapshot

2.7K20

写代码无BUG,网易云前端单元测试方案总结

希望通过对这些工具各自作用掌握,了解完整前端测试技术方案。前端单元测试领域也很多,这里主要讲对于前端组件如何进行单元测试,最后会主要介绍对于 React 组件一些测试方法总结。...因为运行在不同环境需要包格式不同,所以需要我们针对不同环境做不同包格式转换,为了了解在不同端跑单元测试要做哪些事情,可以先来了解一常见包格式。...,所以在搭建测试工具链要确定自己运行在什么环境,如果在 Node 只需要加一层 babel 转换,如果是在真实浏览器,则需要增加 webpack 处理步骤。...总结 如果让推荐的话,对于真实浏览器我会推荐 Karma + Jasmine 方案测试,对于 React 测试 Jest + Enzyme 在 JSDOM 环境已经能覆盖大部分场景。...另外测试 React组件除了 Enzyme 提供操作, Jest 还有很多其他有用特性,比如可以 mock 一个 npm 组件实现,调整 setTimeout 时钟等,真正进行单元测试,这些工具也是必不可少

9.5K20

React脚手架

robots.txt -------- 爬虫协议文件src ---- 源码文件夹App.css -------- App组件样式App.js --------- App组件App.test.js --...-- 用于App做测试index.css ------ 样式index.js ------- 入口文件logo.svg ------- logo图reportWebVitals.js--- 页面性能分析文件...(需要web-vitals库支持)setupTests.js---- 组件单元测试文件(需要jest-dom库支持)注意事项1.动态初始化列表,如何确定将数据放在哪个组件state?...——某个组件使用:放在其自身state——某些组件使用:放在他们共同父组件state(状态提升)2.父子之间通信:【父组件】【子组件】传递数据:通过props传递【子组件】【父组件】传递数据...changeOrigin设置为false,服务器收到请求头中host为:localhost:3000 changeOrigin默认值为false,但我们一般将changeOrigin值设为

38420

Jest + React Testing Library 单测总结

不知道该如何下手,也不知道如何编写有效单测,人有点懵,于是就比较粗略地研究了一前端组件单测。...2、Jest 使用 Jest 安装这里就不赘述了,如果使用 create-react-app 来创建项目,JestReact Testing Library(RTL) 都已经默认安装了。... npm run jest (运行所有的 test suite 和 test case,以及断言),或者 npm run jest -t somefile.test.tsx(运行指定文件测试用例),...除了前端组件匹配器,一些扩展库也依据不同测试场景衍生出了很多其他匹配器。...library 是一个测试 React 组件测试库,核心理念就是: The more your tests resemble the way your software is used, the

4.5K20

JavaScript 测试系列实战(二):深层渲染和快照测试

测试组件 Props 在前一篇文章,我们已经测试了传递 Props 组件情况。但实际上,我们可以直接测试 Props。...在测试与 DOM 交互或者在处理高阶组件,mount 函数也可以派上用场。_Mount 使用 DOM 实现模拟,Jest 默认使用是 jsdom。...快照测试 快照测试Jest 一大招牌功能。所谓快照,可以简单地理解成是我们应用一个**“代码截图”**。当我们运行快照测试Jest 将会渲染组件并创建其快照文件。...输入以下命令,一键更新所有快照: npm test -- -u 实际上,目前 CRA 默认会在监听模式运行 Jest,我们可以一个个更新冲突快照。...首先运行 npm test ,然后输入 i 以交互方式更新失败快照。官方 Jest 文档提供了一个动画来展示这个过程: ?

2.1K20

web前端好帮手 - Jest单元测试工具

以至于我每次想写Mocha单元测试,都要花半天去重读他文档,这个过程让逐渐地变得“害怕”写单元测试。...而现在只需要运行npm install -D jest一键安装Jest,便可以快速接入单元测试编写。.../test.jce")).toMatchSnapshot("test.jce文件AST结构"); Jest提供快速更新快照功能,npm场景,我们用下面的命令来更新快照: npm run jest -...另外同一个测试包含多个快照,由于默认强依赖顺序命名,此时我们改变.toMatchSnapshot()代码顺序也会造成快照对比报错。 ?...Jest并发实例注意事项 当初Jest推出亮点之一就是运用并发优势大大加快了测试运行速度。Jest默认情况是开启并发,我们不需要另外配置启用就能享受测试高速便利。

4.9K40

那些年错过React组件单元测试(上)

真到了开始着手时候,却懵了 ? 以为以为却把自己坑了,发现自己对于前端单元测试一无所知。...前端自动化测试产生背景 在开始介绍jest之前,想有必要简单阐述一关于前端单元测试一些基础信息。 为什么要进行测试?...": "jest --watchAll", }, 此时运行npm run test: ?...jest提供了三种方案来测试异步代码,下面我们分别来看一。 done 关键字 当我们test函数中出现了异步回调函数,可以test函数传入一个done参数,它是一个函数类型参数。...).toEqual({ success: true }) done() }) }) 上面的代码,我们test函数传入了done参数,在fetchData回调函数调用了

4.9K20

使用storybook管理React组件

配置好scripts:"test": "jest"),测试完成后会在storyshots.test.js生成一个stories/index.js对应DOM快照。...PS:下次运行Jest,只有DOM结构与上次完全一致测试才会通过,通常会有两种方法来解决这种情况: 找到问题,修复不同; 用新DOM结构替换旧。...首先安装几个npm包:(puppeteer默认会下载Chromium,比较慢要耐心等候) npm install --save-dev jest puppeteer jest-puppeteer jest-image-snapshot...://localhost:9009 jest:integration", 第一次运行npm run test:integration可以生成UI组件渲染一次快照,再次运行会将新旧快照进行对比,只有完全一致才能测试通过...PS:测试不通过时,运行npm run jest:integration将强制更新原有快照。

3.3K20

前端接入单元测试(Node+React)

在开发新框架,直接运行老前端框架单侧用例,如果所有测试用例都通过,则可快速保证内部api一致性,快速验证所有功能。...Augular 默认测试框架就是 Karma + Jasmine,Egg默认测试框架是Mocha,而 React 默认测试框架是 Jest。...Create React App 新建项目就会默认配置 Jest,我们基本不用做太多改造,就可以直接使用。...如果一致,则测试通过,如果不一致,测试不通过,说明组件有改动更新快照对比结果:npm test – -u 了解测试覆盖率 Statements 语句覆盖率,其实对应就是js语法上语句,js解析成ast...extend, helper等模块编写单元测试,特别是controller重要路由需要做单元测试;控制台和其他React项目可以利用jest工具,针对方法、组件、模块去做单元测试,特别是组件,可以利用快照功能避免多次修改测试用例

3.3K30

关于前端大管家package.json,你知道多少

下面就来仔细剖析一这个文件。 当我们搭建一个新项目,往往脚手架就帮我们初始化好了一个 package.jaon 配置文件,位于项目的根目录。...当执行该命令,就会根据 package.json 文件配置信息来自动下载所需模块,也就是配置项目所需运行和开发环境。...当使用 npm 或 yarn 安装 npm,该 npm 包会被自动插入到此配置项npm install yarn add 当在安装依赖使用...需要注意,由于 optionalDependencies 依赖可能并未安装成功,所以一定要做异常处理,否则当获取这个依赖,如果获取不到就会报错。...build/webpack.dev.conf.js", "start": "npm run dev", "unit": "jest --config test/unit/jest.conf.js

1.5K20

你不知道 Vue 单元测试(6000字实战单元测试

介绍 Vue-Test-Utils 是 Vue.js 官方单元测试实用工具库,提供了一系列 API 来使得我们可以很便捷去写 Vue 应用单元测试。...主流单元测试运行器有很多,比如 Jest、Mocha 和 Karma 等,这几个在 Vue-Test-Utils 文档里都有对应教程,这里我们只介绍 Vue-Test-Utils + Jest 结合示例...❝Jest 是一个由 Facebook 开发测试框架。Vue 对其进行描述:是功能最全测试运行器。它所需配置是最少默认安装了 JSDOM,内置断言且命令行用户体验非常好。...test:unit ,执行: cd first-vue-jest npm run test:unit 然后终端里会看到输出结果,PASS 表示测试用例通过了,这个是官方提供单元测试例子。...● JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件● 你不知道 Npm(Node.js 进阶必备好文)● 用动画和实战打开 React Hooks(

11.1K41

2022年3月最新Eslint + Prettier + Husky + Stylelint + Jest + CICD 超详细前端单元测试&规范工程化工作流

在版本出现问题可以清晰定位; 2.2.0 husky配置 做git规范,前置需要配置一husky,后续内容都是基于husky pnpm i husky --save-dev npm set-script...2.2.4 pre-push pre-push可以在代码push之前运行一些脚本,目前实践就是在push行为之前做本地编包、测试 npx husky add .husky/pre-push "npm...run build && npm test" 3 单元测试「可选」 单元测试中最出名的当属Jest 这里使用则是Jest和ReactTestingLibrary 3.1 Jest && ReactTestingLibrary.../react-test-renderer identity-obj-proxy pnpm i ts-jest @types/jest -D 接着生成基本配置文件进行初始化 npx ts-jest config...:init // ts版本 npx jest --init // js版本 npm set-script test "npx jest" 配置jest.config.js文件: module.exports

1.8K10
领券