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

前端自动化测试

: 保证当前组件质量,即当前业务正常使用 新需求下,旧组件如果能满足新需求50%以上功能,应当升级旧组件满足新需求,同时兼容旧业务 除该组件Owner之外第二人,修改组件过程,避免因为对代码不熟悉...test,后缀名为xxx.test.js文件,在运行测试时会自动执行,snapshots为自动生成页面快照。...这里可以首先简单看一下,Jest+Enzyme基本语法: JestAPI更多着力于定义测试、断言、mock库 定义测试: describe: 定义一个测试套件(test suite) it: 定义一个测试...mockReturnValue: mock函数被调用返回一个值 EnzymeAPI更多着重于渲染react组件和从dom树种检索指定节点 下面是三种渲染组件方法: shallow: 会渲染至虚拟...render: 渲染出最终html,然后利用这个html结构来进行分析处理 一些被渲染组件检索节点方法: find: 通过匹配选择器来检索节点 some: 当至少有一个节点匹配选择器是返回true

1.9K20

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

在上一篇教程,我们已经介绍了使用 Enzyme 测试 React 组件基本知识。...今天,我们将更深入地挖掘并学习如何测试组件 Props,如何(以及为什么)使用 mount 函数,以及什么是 Jest 快照测试。...测试与 DOM 交互或者处理高阶组件时,mount 函数也可以派上用场。_Mount 使用 DOM 实现模拟,Jest 默认使用是 jsdom。...小结 本文中,我们介绍了如何直接去测试组件 Props,并学习了 mount 函数和浅层渲染之间区别。...除此之外,我们还介绍了 Jest 快照测试,这是一个非常强大工具,可以追踪组件渲染方式变化。接下来文章,我们还将介绍测试中常见 Mock 技巧——与组件模拟交互,不见不散!

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

使用storybook管理React组件

本文已ReactUI组件为例,演示如何新建/集成Storybook到项目中,并对UI组件进行全方位管理,包括发布、demo文档、测试等。 1....结构文档(类似于html源码),可以无痛集成到组件测试。...4.3 测试交互 storybook交互性测试可以使用 Enzyme来模拟用户输入,然后使用Mocha or Jest进行结果测试,storybook又一个专门插件帮助我们集成他们:specifications...4.4 测试样式 样式测试这里采用Puppeteer 和Jest来实现,其原理是利用Puppeteer无头chrome浏览器和storybookurl绑定组件特点,来渲染不同UI组件,再进行图片快照对比...4.5 手动测试 再好自动化测试,都和人体验存在差距,所以发布之前还是需要经过人眼测试,因为storybook活文档特点,我们可以直接运行体验UI组件,通过交互操作、knobs插件等来进行全面体验

3.3K20

Jest:给你 React 项目加上单元测试

Jest 是一款轻量 JavaScript 测试框架,它卖点是简单好用,由 facebook 出品。本文就简单讲讲如何使用 Jest 对 React 组件进行测试。 为什么需要单元测试?...单元测试(Unit Testing),指的是对程序模块(最小单位)进行检查和验证。比如一个函数、一个类、一个组件,它们都是模块。 使用单元测试优点: 更好地交付高质量代码。...但 Jest 本身并不支持 React 组件测试 API,需要使用另外一个内置 React Testing Library 库来测试 React 组件。...React Testing Library 是 用户为角度 测试库,能够模拟浏览器 DOM,将 React 组件挂载上去后,我们使用其提供一些模拟用户操作 API 进行测试。...官方只支持到 React 16,Enzyme 已死: https://dev.to/wojtekmaj/enzyme-is-dead-now-what-ekl 使用 Jest 测试 React 组件

2.8K20

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

本篇教程是 JavaScript 测试系列实战 第一篇教程,首先介绍了测试类型,然后主要通过一个 React 项目教会你如何使用 Jest 编写第一个测试,然后使用 Enzyme 对 React 组件进行浅层渲染...初识 Jest 单元测试 测试是检查代码代码,能够大大增强我们对应用信心。更重要是,测试会阻止你修复一件事情同时破坏另一件事情,让我们能够放开手脚进行功能添加与大规模重构。...配置 jest-enzyme 你应该还记得,刚才测试代码,我们还是使用了 Jest 自带 Matcher(toEqual)。...我们通过 npm 来安装 jest-enzyme: npm install jest-enzyme 相应地 src/setupTests.js 添加相应配置: // src/setupTests.js...我们将在下一篇教程中讲解如何去更“深层”地去测试我们组件

2.9K10

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

(() => { console.log('每个测试用例测试完毕后运行'); }); 五、Jest Mock函数 单元测试,有许多对象或函数并不需要真实引用,因此需要mock。...组件测试 import { mount, shallow, render } from ‘enzyme'; Enzyme测试组件进行渲染分为三种: shallow:浅渲染,仅渲染单个组件,不包括其子组件...这对于隔离组件进行纯单元测试很有用,效率高,可以进行模拟交互,并且从Enzyme 3开始也可以访问组件生命周期,所以一般组件测试用shallow即可。 mount:完整渲染,包括其子组件。...,携程持续集成流程再接入sonar, 可以查看完整单元测试报告。...携程租车前端单元测试实践,我们总结出几个要点: 将待测试组件当成黑盒,不用考虑内部逻辑实现; UI改动频繁,优先保证公用组件,工具函数,核心代码单元测试; 模拟数据尽量真实; 多考虑边界条件情况

6K30

从echarts-for-react源码中学习如何写单元测试

,作用是「浅复制objkeys」,如何判断它返回是期待结果?...() 作用: 把遇到计时器挂起,必要时,再使用jest.runOnlyPendingTimers执行掉已经挂起计时器 这里使用jest.useFakeTimers()目的就是暂停正在执行timer...() 作用: 新建mock function 进行单元测试时,应该将关注点放在「测试目标」上,而onChartReady作为被依赖function,不管它内部发生了什么,都与「测试目标」无关,只需关注返回值.../enzyme/docs/api/mount.html 通过本文,你应该知道 ① jest.useFakeTimers()作用及何时使用 ② 如何测试function ③ 如何测试ReactComponent...④ mount()/shallow()/render()区别 ⑤ toEqual()和toBe()区别 ⑥ 如何测试DOM节点上属性 ⑦ 如何测试React组件实例上属性 ⑧ 如何测试组件

6.1K50

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

JavaScript测试教程-part 1:用 Jest 进行单元测试 2. JavaScript测试教程–part 2:引入 Enzyme测试 React 组件 3....JavaScript测试教程–part 4:模拟 API 调用和模拟 React 组件交互 本教程第一篇,我们简要介绍了单元测试基础。这次要更进一步,使用 Enzyme测试 React。...Enzyme 基础 Enzyme 是一个库,用于测试时处理你 React 组件。它由 Airbnb 开发。 设置 Enzyme 继续上一篇文章内容,假设你 Jest 已经能够工作了。...第二个测试,我们组件上调用了 find 函数。这要归功于 shallow 函数返回 ShallowWrapper,它是渲染输出包装器。它有一组可供调用函数。...之所以这样称呼,是因为它不渲染任何子组件。在编写单元测试时,它工作得很好。本教程后续部分,我将介绍其他类型渲染,并学习如何测试程序不同部分。它将包括快照测试和模拟数据之类技术。下次见!

1.4K50

Unit Testing

"test": "jest" } } 之后只需要在 Command Line 输入 yarn test 即可开启测试 #配置时遇到麻烦 我配置 Jest 时遇到了几个麻烦,让我测试代码运行不起来...-16' Enzyme.configure({ adapter: new Adapter() }) 其他配置可以参考官网配置文档来进行进一步配置 #如何做好单元测试 #一个好单元测试应该遵循下面三个步骤...纯 UI 展示型组件 ✅ ✅ ❌ 容器型组件 ✅ ✅ ❌ 通用 UI 组件 ✅ ✅ ❌ 功能型组件 ✅ ✅ ❌ 总结一句话就是,所有的功能型代码,都需要进行单元测试,但是像 UI 以及 css 等样式代码...,就不要进行不必要测试了,意义其实并不大,除非你要写像 Ant Design 这类 UI 库,日常业务场景下是完全没有必要。...表格,建议是 100% 覆盖率 #参考 Jest React 测试技巧 React 单元测试策略及落地 单元测试-维基百科

1.3K20

JavaScript 测试教程–part 3:测试 props,挂载函数和快照测试

JavaScript测试教程-part 1:用 Jest 进行单元测试 2. JavaScript测试教程–part 2:引入 Enzyme测试 React 组件 3....JavaScript测试教程–part 4:模拟 API 调用和模拟 React 组件交互 在上一篇教程,我介绍了使用 Enzyme 测试 React 组件基础知识。...今天,将进行更深入研究,并学习如何测试 props,如何(以及为什么)使用 mount 函数以及什么是快照测试。开始吧! 测试 props 在上一篇文章,我们测试了通过一些 props 结果。...早期版本Enzyme浅层渲染期间未调用生命周期方法。...测试期间,将渲染组件并创建其快照。它包含渲染组件整个结构,应该与测试本身一起提交给存储库。再次运行快照测试时,新快照将与旧进行比较。如果它们不同,则测试将失败。

1.7K20

JavaScript 测试系列实战(三):使用 Mock 模拟模块并处理组件交互

之前两篇教程,我们学会了如何测试最简单 React 组件实际开发,我们组件经常需要从外部 API 获取数据,并且组件交互逻辑也往往更复杂。...在这篇教程,我们将学习如何测试更复杂组件,包括用 Mock 去编写涉及外部 API 测试,以及通过 Enzyme 来轻松模拟组件交互 初次尝试 Jest Mock 我们应用程序通常需要从外部...编写 axios 模块 mock 文件 Jest 支持对整个模块进行 Mock,使得组件不会调用原始模块,而是调用我们预设 Mock 模块。...打开 TodoList 测试文件,首先在最前面通过 jest.mock 配置 axios 模块 Mock(确保要在 import TodoList 之前), Mock 之后,无论测试还是组件中使用都将是...不幸是,测试钩子并没有那么简单。本文中,我们研究了如何使用 react-hooks-testing-library[2] 处理它。

4.8K20

如何自动化测试 React Native 项目 (下篇) - 单元测试

接着上篇内容, 这篇文章会详细介绍 Glow 我们如何写单元测试, 以及 React Native 各个模块单元测试详细实现方式。...( vuejs 测试可以用 vue-test-utils) Enzyme 提供了可以直接操作 React component props 和s tate 方法,使得建造测试 context...可以想象成每次UI有变化时会重新生成这个组件并刷新, React会帮开发者处理具体怎么高效变化。 因此我们测试组件时候, 也只要把重点放在测试我们如何描述这个组件。...组件交互测试Enzyme shallow 生成 ReactWrapper 会提供一些用来进行组件交互测试 API,比如 find(), parents(), children()等选择器进行元素查找...如何来规划集成测试 scope 也是根据项目不同来选择合适方案,有这样一层测试可以不依赖于大量E2E测试情况下保证各个组件之间也是正确工作,是对测试效率和测试信心都有好处一种这种方案。

3.2K21

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

文章内容力求深入浅出,浅显易懂~ “介于内容全部收在一篇会太长,计划分为两篇,本篇是第一篇,主要介绍如何快速上手jest以及实战中常用功能及api ?...前端自动化测试产生背景 开始介绍jest之前,我想有必要简单阐述一下关于前端单元测试一些基础信息。 为什么要进行测试?...因此单元测试概念在前端领域应运而生,通过编写单元测试可以确保得到预期结果,提高代码可读性,如果依赖组件有修改,受影响组件也能在测试及时发现错误。 测试类型又有哪些呢?...):每个测试用例执行之前需要执行方法 afterEach():每个测试用例执行完后执行方法 这里,我项目中一个基础 demo 来演示一下具体使用: Counter.js export default...总结 到这里,关于前端单元测试一些基础背景和Jest基础api就介绍完了,在下一篇文章,我会结合项目中一个React组件来讲解如何组件单元测试。 ?

4.9K20

「前端架构」Grab前端学习指南

React,只需更改组件状态,视图就会根据状态更新自身。通过查看render()方法标记也很容易确定组件外观。 功能-视图是一个纯粹道具和状态功能。...大多数情况下,React组件由支柱(外部参数)和状态(内部数据)定义。对于相同道具和状态,会产生相同视图。纯函数易于测试,功能组件也是如此。...React中进行测试很容易,因为组件接口定义良好,可以通过向组件提供不同道具和状态并比较呈现输出来测试组件。 可维护性——基于组件方式编写视图可以促进可重用性。...测试- - Jest + Enzyme Jest是Facebook一个测试库,旨在让测试过程无痛苦。与Facebook项目一样,它提供了一种开箱即用良好开发体验。...测试可以并行运行获得更快速度,并且监视模式下,只运行更改文件测试。我们喜欢一个特性是“快照测试”。

7.4K20

年轻时,我不写单元测试

一个多人协作大型项目中,我们开发过程可能经常会面临到这样问题: 哎,这次我没有改动到这里啊,这怎么会有bug呢 哎,怎么新加了个功能原来功能受影响了呢 哎,这里样式为什么乱掉了 当我们被提出这些...,关于不同测试框架重点,这篇文章就不详细展开了,最终结合我们项目,最终采用了facebookjest+enzyme。...重点将展开以下两种react组件类型测试。 展示型组件测试 展示型组件测试,意思就是要确保每一次修改都是符合预期,这里笔者要着重介绍下jest框架里面的snapshot功能。...shapshot就是会对组件进行一次快照记录当前状态,每一次run jest时候,对比上一次,看看是否有变化。...但是仔细想想,这其实就违背了我们单元测试初衷,笔者这里也大胆猜测下,jest官方实现这个功能时候,应该也只是想记录下一步一步事件后,当前组件html结构,对比上一次快照,来看功能是否符合预期

85120

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

我希望通过对这些工具各自作用掌握,了解完整前端测试技术方案。前端单元测试领域也很多,这里主要讲对于前端组件如何进行单元测试,最后会主要介绍下对于 React 组件一些测试方法总结。...,而且支持功能更加清晰,不用考虑如何组合使用问题,而且下文介绍 jest 测试框架也是使用这种风格。...真实浏览器环境下测试 目前 Jest 不支持直接在真实浏览器中进行测试,其默认启动器只提供了一个 JSDOM 环境,浏览器中进行单元测试目前只有 Karma 方案能做到,所以也可以使用 Karma...使用 Jest + Enzyme 对 React 进行单元测试 ?...另外测试 React组件除了 Enzyme 提供操作, Jest 还有很多其他有用特性,比如可以 mock 一个 npm 组件实现,调整 setTimeout 时钟等,真正进行单元测试时,这些工具也是必不可少

9.5K20

React单元测试Jest + Enzyme(二)

前言 在上一篇教程,我们成功搭建了基于JestEnzyme单元测试框架并成功地跑起来第一个单元测试,可以点击这里回顾一下。今天,我们重点讨论如何通过Jest来mock数据。...什么是Mock Mock简单翻译就是模拟。既可以模拟数据,也可以模拟行为。在上一篇文章,就用到了mock功能来忽略对多媒体文件和字体文件等请求: "jest": { ....../api/data文件夹: 单测实例 假设有以下组件加载时候会发送api请求获取数据: import React, {PureComponent} from 'react' import dataApi...这里,我们使用了enzymemout方法来渲染组件,这个方法会执行组件对应生命周期方法。在上面的例子,componentDidMount方法里就包含了请求api方法。...总结 通过上面的步骤,就可以写出一个简单模拟网络请求单元测试了。更多Jest+enzyne用法,请期待下一期文章

1.4K20

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

而对于开发者来说,重要进行测试动作。本篇文章主要围绕着React组件单元测试展开,其目的是为了让开发人员可以站在使用者角度考虑问题。...通过测试手段,确保组件每一个功能都可以正常运行,关注质量,而不是让用户来帮你测试。 在编写单元测试时候,一定会对之前代码反复进行调整,虽然过程比较痛苦,可组件质量,也一点一点提高。...除非合并,否则将覆盖DOM测试默认设置。 基本上,这个函数所做就是使用ReactDOM呈现组件直接附加到document.body新创建div呈现(或为服务器端呈现提供水合物)。...注意:这个AAA模式并不特定于测试库。事实上,它甚至是任何测试用例一般结构。我在这里向您展示这个是因为我发现测试如何方便地每个部分编写测试是一件很有趣事情。...(CV也是可以?) 1.如何创建测试快照 快照,顾名思义,允许我们保存给定组件快照。当您进行更新或重构,并希望获取或比较更改时,它会提供很多帮助。 现在,让我们看一下 App.js 文件快照。

14.8K33
领券