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

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

本篇教程是 JavaScript 测试系列实战 的第一篇教程,首先介绍了测试的类型,然后主要通过一个 React 项目教会你如何使用 Jest 编写第一个测试,然后使用 Enzyme 对 React 组件进行浅层渲染...测试的类型 单元测试 单元测试的目标可以是一个函数,一个,或者一个模块。单元测试应该是相互隔离独立的。对于给定的输入,单元测试检查结果。...因此这里建议直接使用 npx jest 执行测试。 编写第一组测试 每个测试文件通常有多个测试用例。Jest 允许我们通过 describe 函数对测试用例进行分组,它创建了一个可以组合多个测试的块。...Jest 测试文件中使用它。...配置 jest-enzyme 你应该还记得,在刚才的测试代码中,我们还是使用Jest 自带的 Matcher(toEqual)。

2.9K10

Google Test(GTest)使用方法源码解析——模板测试技术分析应用

其实GTest提供了两种测试模板的方法,本文我们将介绍方法的使用,并分析其实现原理。...这个时候我们就要使用高级模式         首先我们需要声明一下测试用例 TYPED_TEST_CASE_P(TypeTest);         然后使用TYPED_TEST_P定义一个测试实体...第13行使用12行别名的类型,特化了我们传入的测试用例,即该行对应于 typedef TypeTest FixtureClass;         第14行对测试特例使用了int类型进行特化...不同点是: 直接使用传入的测试特例名作为名 调用TYPED_TEST_CASE_P定义的TypedTestCasePState对象AddTestName对测试用例测试特例名进行注册 将测试特例傀儡变量初始化过程控制在一个测试用例名相关的命名空间中...需要注意的是这个地方推导的不是模板的类型,而是测试特例。我们在讲解TYPED_TEST_P时提过,宏中直接使用传入的测试特例名作为名,这是有原因的。原因就是在这儿要一个个推导。

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

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

run build && npm test" 3 单元测试「可选」 单元测试中最出名的当属Jest 我这里使用的则是JestReactTestingLibrary 3.1 Jest && ReactTestingLibrary...3.1.1 初始化与安装 项目中使用了ts,需要为Jest额外准备babeltypescript环境包 pnpm i jest -D pnpm i -D babel-jest @babel/core...@babel/preset-env @babel/preset-typescript pnpm i -D @babel/preset-react react-test-renderer @types.../react-test-renderer identity-obj-proxy pnpm i ts-jest @types/jest -D 接着生成基本配置文件进行初始化 npx ts-jest config...写入全局配置 import '@testing-library/jest-dom'; 写第一个测试用例: // home.test.tsx import Home from "..

1.8K10

react生态下jest单元测试

一:jest框架搭建 1.在本地创建一个目录jest_practice 2.使用编辑器VScode打开目录,紧接着在终端中打开,执行npm init 图片 3.执行以下命令: 注意:这里我们使用cnpm...a.建议使用npm install –g jest(不需要单个去安装依赖),修改package.json文件即可。...Enzyme: React测试库Enzyme提供了一套简洁强大的API,并通过jQuery风格的方式进行DOM处理,开发体验十分友好。不仅在开源社区有超高人气,同时也获得了React官方的推荐。...后面每次再运行快照测试时,都会第一次的比较,若组件代码有所改变,则快照测试会失败,如果组件代码是最新的,优化过得代码,则需要更新快照,免得每次执行报错。.../Link.react"; import renderer from "react-test-renderer";// react-test-renderer则负责将组件输出成 JSON 对象以方便我们遍历

2.2K20

前端单元测试Jest

在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基(超)、抽象、或者派生(子类)中的方法。 集成测试,也叫组装测试或联合测试。...前端的测试框架有很多:mocha, jasmine, ava, testcafe, jest,他们都有各自擅长的领域特点,而我们采用的jest框架具有如下的一些特点: 适应性:Jest是模块化、可扩展可配置的...; 沙箱快速:Jest虚拟化了JavaScript的环境,能模拟浏览器,并且并行执行; 快照测试Jest能够对React 树进行快照或别的序列化数值快速编写测试,提供快速更新的用户体验; 支持异步代码测试...import React from 'react'; import renderer from 'react-test-renderer'; import RC from '.....[`react-comp snapshot test2 1`] = ` 我是react组件 `; 如果被测试代码有正常更新,可以使用jest --updateSnapshot

2.7K20

前端基础:CSS的作用基本使用

前端基础:CSS中的作用基本使用 作为一名优秀的前端开发,不会使用元素有点说不过去。...但是很多小白可能元素都分不清楚,我先同通俗的话解释下:是用来给指定选择器添加状态效果,元素是给指定元素添加内容修饰。 今天先带大家看一下是如何使用的,明天给大家演示下元素的使用。...常见的诸如:active/:focus/:hover/:visited/:first-child等大家可能比较熟悉,用的比较频繁,实际上有几十个,下面分门别的展示一下 一、用于链接,按钮等元素的常见...// :active 常见于用户点击按钮松开按钮之间的样式 ​ // :visited 常用于链接被访问之后的样式 ​ // :link 一个链接未被点击时的样式 二、用于可获取焦点的元素的常见...// :focus 可输入内容的标签选中时的元素样式 // :focus-within 当他的后代出现光标时触发该样式 三、用于打印时的常见 // :first 打印文档的时候,第一页的样式。

37800

React 设计模式 0x8:测试

安装依赖: npm install --save-dev react-test-renderer 通过简单小例子来演示: import renderer from "react-test-renderer...# 使用 Jest 进行集成测试 在大多数 React 应用程序中,通常需要与外部 API 集成以在应用程序中发布获取数据。 可以使用 Jest测试 API 行为,以查看预期意外结果。...# React 测试最佳实践 对每个组件编写测试 为每个组件编写测试,以确保它们能够正确地渲染响应 使用测试使用 Jest React Testing Library 等测试库,它们提供了专门用于测试...React 组件的工具函数 编写测试用例 编写完整的测试用例,覆盖组件的所有代码路径,包括正常情况异常情况 使用快照测试 使用 Jest 中的快照测试功能来验证组件是否按预期呈现 使用模拟数据...使用模拟数据来测试组件,以确保它们在不同的数据情况下都能正常工作 使用模拟函数 使用模拟函数来模拟组件的依赖项外部接口,以便更好地控制测试环境 集成测试 编写集成测试测试应用程序的整个流程

1.8K10

React源码阅读(一):从目录结构开始

实际上我目前也不完全理解,不过我们还是可以进入下一步了 根目录 根目录其实不算繁杂(对比很多其他库) 忽略带.的隐藏文件夹,那么实际上的文件夹如下: 图片 fixtures:【固定设施】包含一些给贡献者准备的小型测试项目...packages:这是React源码存放的地址,我们之后要从这里开始阅读 scripts:好说,这里写着各种脚本 packages 源码的元 图片 这里就存在太多文件夹了,主要可以划分成这样: react...scheduler调度器文件夹 shared 发现这里存放着很多公用的变量、函数、类型,那这块晚点看 其他包 那么我们会发现这里有两个显而易见的核心react&&scheduler,当然react...react-art react-native-renderer react-noop-renderer react-test-renderer 嗯对...带着很明显的渲染 相关词汇。...,比如React的事件模型 react-reconciler 上文说过,reconciler是协调器,这里让我们可以构建自己的Renderer 辅助包 react-is 用于测试组件是否是某类型

79210

初尝 Jest 单元测试

最近的几次发布都犯了小错,都是缺乏或者忽视了测试所导致的。通常来说,一个新功能上线的时候,开发测试都投入比较多,各项测试都是比较全面的。然而,发布上线也并非意味着不再有bug或者修改。...)测试框架(Jest),所以,看怎么样在已有项目快速补充上单元测试吧。.../Link.react'; import renderer from 'react-test-renderer'; it('renders correctly', () => { const tree...从其需要的依赖来看, npm install --save-dev jest babel-jest babel-preset-es2015 babel-preset-react react-test-renderer...看起来,这样子添加测试用例,倒也不是很麻烦的样子,主要是snapshots的使用,有四两拨千斤效,不过重点在于其输入数据的构造。 可期。

1.6K10

初尝 Jest 单元测试

最近的几次发布都犯了小错,都是缺乏或者忽视了测试所导致的。通常来说,一个新功能上线的时候,开发测试都投入比较多,各项测试都是比较全面的。然而,发布上线也并非意味着不再有bug或者修改。...)测试框架(Jest),所以,看怎么样在已有项目快速补充上单元测试吧。.../Link.react'; import renderer from 'react-test-renderer'; it('renders correctly', () => { const tree...从其需要的依赖来看, npm install --save-dev jest babel-jest babel-preset-es2015 babel-preset-react react-test-renderer...看起来,这样子添加测试用例,倒也不是很麻烦的样子,主要是snapshots的使用,有四两拨千斤效,不过重点在于其输入数据的构造。 可期。

1.7K80

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

现在,我们可以使用单元测试来提高自己的代码质量。下面,我将自己在使用JestSinon.js配置编写单元测试中的收获的经验踩到的坑进行总结,根据从零开始配置编写单元测试这一条线来进行分享。...Jest配置 安装依赖包 需要使用Jest,首先你需要进行安装,执行以下命令: npm install jest -D 如果你的项目中存在.babelrc文件(使用了babel 6)时,不论你测试的代码是否通过...编写单元测试 在本章中,我们会针对如何编写单元测试文件进行一个具体的讲解,其中包含: 同步函数测试 异步函数测试 HTTP测试 同时,我们会对当中使用到的JestSinon.js的API会进行简单介绍...,如果需要使用其他的API,可以自行阅读JestSinon.js的文档。...通过上面三测试,我们基本能够覆盖现有项目中的所有代码。 同步函数测试 同步函数的测试过程是这几个中最简单的一部分,我们可以测试函数返回值,也能够测试传入的高阶函数。

3.7K00

Google Test(GTest)使用方法源码解析——死亡测试技术分析应用

(转载请指明出于breaksoftware的csdn博客) 死亡测试技术应用         我们可以使用TEST声明并注册一个简单的测试特例。其实现内部才是死亡测试相关代码运行的地方。...可见Windows上死亡测试最终将由WindowsDeathTest代理,而linux系统根据传入参数不同而选择不同的。...它们都是DeathTest的派生。为什么linux系统上支持参数选择,这要从系统暴露出来的接口系统实现来说。...fork是标准的子进程父进程分离执行,所以threadsafe对应的ExecDeathTest在底层调用的是fork,从而可以保证是安全的。...;         这段逻辑创建了父进程子进程通信的匿名管道事件句柄,这些都通过命令行参数传递给子进程。

2.4K20

使用 Jest 进行前端单元测试

Jest 默认使用 Jasmine 语法,支持直接使用 Promise async/await 进行异步测试,支持对 React 组件进行快照监控, 扩展集成 Babel 等常用工具集也很方便。...Mock Jest 自带一个 mock 系统,并支持自动手动 mock。 通常项目中,要测试的文件可能带有很多调用依赖,另外单元测试环境真实环境可也能存在差异,使得脱离真实环境不能直接运行。...我们在写一个测试用例前,如果能对非关键的依赖进行 mock,只约定好最后的返回,就不用再先解决一堆依赖环境问题,把精力集中在要测试的单元上来编写 test case ,同时也缩短测试用例执行的时间,做到最小化测试.../reactApp"; import renderer from 'react-test-renderer'; it("react render", () => { const component...要了解更多可以阅读 官方文档 [附3] enzyme [附4] 。 异步支持 如果有使用过 node-tap 之类的老测试框架,在遇到异步情况时候肯定感受过麻烦了。

5.5K90

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

一、技术选型: Jest + Enzyme + react-hooks-testing-library 1.1 jest Jest是FaceBook出品的前端测试框架,适合用于ReactReact...有以下几个特点: 简单易用:易配置,自带断言库mock库。 快照测试:能够创造一个当前组件的渲染快照,通过上次保存的快照进行比较,如果两者不匹配说明测试失败。...": "^7.0.0", "jest-react-native": "^18.0.0", //RN支持,非RN可以不装 "react-test-renderer": "16.9.0",...* test:也可以用it,测试用例 * expect:使用该函数断言某个值 常用断言 * toBe:测试是否完全相等 * toBeCloseTo:浮点数比较 * toEqual:对象深度比较 * not...快照将在测试文件的当前文件路径自动生成的snapshots文件夹中保存。当主动修改造成ui变化时,使用jest -u来更新快照。

6K30

React团队是如何测试并发特性的

比如,下面是使用ReactDOM的输出结果测试「无状态组件的渲染结果是否符合预期」(测试框架是jest): it('should render stateless component', () =>...那能不能为测试「内部运行流程」专门开发一个渲染器呢? 答案是肯定的。 这个渲染器叫React-Noop-Renderer。 简单的说,这个渲染器会渲染出纯JS对象。...基于React-Noop-Renderer,可以完全脱离正常的宿主环境,测试Reconciler内部的逻辑。 接下来来看第二个问题。 如何测试并发环境?...记录过程信息 脱离宿主环境,单独测试React内部运行流程的,使用React-Noop-Renderer 测试并发下的场景,需要结合上述工具与jest-react一起使用 如果想深入学习下React中与测试相关的技巧...这是个React框架,但能跑通800+的React用例。里面实现了ReactTestUtils、React-Noop-Renderer的简化版。

1.3K20

Google Test(GTest)使用方法源码解析——私有属性代码测试技术分析

有些时候,我们不仅要测试暴露出来的公有方法,还要测试其受保护的或者私有方法。GTest测试框架提供了一种方法,让我们可以测试的私有方法。...但是这是一种侵入式的,会破坏原来代码的结构,所以我觉得还是谨慎使用。...(FRIEND_TEST_Test, TEST);声明的,然后通过TEST(FRIEND_TEST_Test, TEST)实现测试特例实体,于是该实体中需要使用Foo的构造函数构造一个对象,然后调用其私有的...它使用到了Test Fixtures技术(详见《Google Test(GTest)使用方法源码解析——预处理技术分析应用》)。在FRIEND_TEST_Test2中,声明了一个Foo对象。...然后TEST_F(FRIEND_TEST_Test2, TEST_F)直接使用了该成员变量调用Bar方法。

2.7K20
领券