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

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

一、技术选型: Jest + Enzyme + react-hooks-testing-library 1.1 jest Jest是FaceBook出品的前端测试框架,适合用于ReactReact...1.2 Enzyme Enzyme是AirBnb开源的React测试工具库,通过一套简洁的api,可以渲染一个或多个组件,查找元素,模拟元素交互(点击,触摸),通过和Jest相互配合可以提供完整的...(() => { console.log('每个测试用例测试完毕后运行'); }); 五、Jest Mock函数 在单元测试,有许多对象或函数并不需要真实的引用,因此需要mock。...比如之前提到的初始化文件jest.setup.js,我们会mock一些对象: jest.useFakeTimers(); //mock时间 jest.mock('....七、Jest 异步测试 Jest单元测试是同步的,因此面对异步操作fetch获取数据,需要进行异步的模拟测试

6K30

Jest 单元测试快速上手指南

你可以完善测试用例, 或者可能有些文件(譬如 config)和代码分支并不需要测试, 可以将其在测试覆盖率结果中排除, 参考如下配置 忽略目录下所有文件 在 jest.config.js 添加 collectCoverageFrom...开头的表示忽略与其匹配的文件 忽略单个文件 在该文件顶部添加 /* istanbul ignore file */ 忽略一个函数, 一块分支逻辑或者一代码 在该函数, 分支逻辑或者代码的上一添加..., 结果和之前一致 执行单测时不校验 ts 类型 有时你可能会希望不校验 ts 类型, 仅执行代码测试, 比如需要在 CI 中将类型校验和单元测试分为两个任务 在 jest.config.js 添加如下内容...globals: { 'ts-jest': { isolatedModules: true, }, } 测试 React 组件 安装 react 依赖 yarn add.../jest.setup.js'], 重新执行测试就可以了 测试交互事件 新增 Count.tsx 组件 import React, { useState } from 'react'; function

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

Jest + React Testing Library 单测总结

2、Jest 的使用 Jest 的安装这里就不赘述了,如果使用 create-react-app 来创建项目,JestReact Testing Library(RTL) 都已经默认安装了。...运行指定文件测试用例),就可以得到测试结果,: 当然,如果想要看到覆盖率的报告,可以使用 jest --coverage,或者 jest-report。...的扩展阅读材料 Jest 学习指南 那些年错过的 React 组件单元测试 使用 Jest 测试 JavaScript (Mock 篇) 3、React Testing Library testing...3.1 render & debug 在测试用例渲染内容,可以使用 RTL 库的 render,render 函数可以为我们在测试用例渲染 React 组件。...   expect(screen.queryByText("test")).toBeInTheDocument();  }); }); findBy 的使用方法 假如在 Component 组件定义一文字

4.5K20

从工程化角度讨论如何快速构建可靠React组件

本文并不是要谈如何去写一个 React 组件,这一块已经有不少精彩的文章。...而 React 组件测试还有一个更好的选择,就是官方推荐的 jest + enzyme。...jest 跟 jasmine 有点类似,将一个测试库的功能大部份集成好了(断言等工具),一键安装 babel-jest 可以用 es6 直接写测试用例,搭配 jest-environment-jsdom...通过 jest-environment-jsdom,它能够将 jsdom 注入到 node 运行环境,因此你可以在测试文件中直接使用 window 对象进行模拟。...除此之外,定时器里还有个 try catch 的逻辑,主要是如果 expect 验证不通过,jest 会报告错误,这时需用错误捕获的办法将错误传给 done (异步测试的回调),这样才能正常退出这一测试用例

1.9K60

React Hook测试指南

React为什么需要Hook我们探讨了React为什么需要引入Hook这个属性,在React Hook实战指南中我们深入了解了各种Hook的详细用法以及会遇到的问题,在本篇文章我将带大家了解一下如何通过为自定义...举个例子假如我们有一个100的函数,在我们运行完所有的为这个函数编写的单元测试用例之后,如果测试框架告诉我们这个函数的覆盖率是80%,这表明我们的测试用例代码只覆盖了这个函数的80代码,还有一些代码分支...我们源代码的函数可能使用了另外一个文件或者node_modules安装的一些依赖,这些依赖可以使用jest.spyOn来进行mock,下面是一个简单的例子: // somewhere/sum.js...项目引入jest 了解完jest的一些基本API之后我们再来看一下如何在我们的项目里面引入jest。...总结 在本篇文章我给大家介绍了什么叫做单元测试,为什么我们需要在自己的项目里面引入单元测试以及教大家如何使用Jestreact-hooks-testing-library来测试我们自定义的hook。

1.7K10

Jest 进行 JavaScript 测试

测试分为三大类: 单元测试 集成测试 UI测试 在这个 Jest 教程,我们将仅涵盖单元测试,但在文章的最后,你将找到更多用于其他类型测试的资源。 什么是Jest?...最常见的问题是“我怎么知道要测试些什么?”。如果你正在编写 Web 应用,那么一个好的起点就是测试应用的每个页面和每个用户交互。但 Web 应用也由单元代码组成,函数和模块,也需要进行测试。..., "link"); 在 Jest 测试,你应该将函数调用包含在 expect ,它与匹配器(用于检查输出的Jest函数)一起进行实际测试。...Jest的HTML代码覆盖率报告 如果单击函数名称,你还会看到确切的未经测试的代码: ? 单个文件的Jest代码覆盖率报告 很整洁不是吗?使用代码覆盖,你可以在有疑问时发现要测试的内容。...Jest 可以顺利地测试 React 应用(JestReact 均来自 Facebook 的工程师)。Jest 也是 Create React App 的默认测试器。

2.7K30

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

严重的时候甚至会出现我改了一代码,却不清楚其影响范围情况。这种时候,就需要测试的方式,来保障我们应用的质量和稳定性了。 接下来,让我们学习下,如何给 React 应用写单元测试吧?...技术栈选择 当我们想要为 React 应用编写单元测试的时候,官方推荐是使用 React Testing Library[1] + Jest[2] 的方式。...因此,可以从DOM测试库和其他一些有用的方法(debug、rerender或unmount)获得大量查询。...并触发DOM事件,单击、焦点、更改等。您可以在这里找到许多其他可以调度的事件。...触发事件通常会触发应用程序的一些更改,因此我们必须执行一些断言来确保这些更改发生。在我们的测试,这样做的一个好方法是确保呈现给用户的计数已经更改。

14.8K33

React Native 持续部署实践— push 代码构建出新版的 Growth

因此在这一篇文章里, 我们将介绍基于下面的几个框架来搭建持续集成: React Native 与持续集成服务器 Travis CI 的使用 单元测试 Jest 及 UI 测试框架 React Test...实践上证明,快了十几秒: cache: yarninstall:- yarn install 在正常的持续集成作业,只会进行 eslint 和单元测试。...,需要在 jest.setup.js mock 这些方法,如下是用来 mock 包 react-native-device-info 的 getVersion 方法: jest.mock('react-native-device-info...', () => ({ getVersion: jest.fn(),})); 而 React Test Render 的用法就稍微简单一些,主要用来测试一些组件的渲染结果: it('renders...总的来说,React Native 有一些测试还是不容易写的。并且诸如 WebView 这样的组件,在测试的时候会报错~~。

2.1K50

React 组件进行单元测试

React 单元测试中用到的工具 III. 用测试驱动 React 组件重构 IV. React 单元测试常见案例 I....React 单元测试中用到的工具 Jest 不同于"传统的"(其实也没出现几年)的 jasmine / Mocha / Chai 等前端测试框架 -- Jest的使用更简单,并且提供了更高的集成度、更丰富的功能...我们指定了测试的“根目录”,配置了覆盖率(内置的istanbul)的一些格式,并将原本在webpack对样式文件的引用指向了一个空模块,从而跳过了这一测试无伤大雅的环节 //NullModule.jsmodule.exports...” , 这也是 TDD 的一般性步骤: 添加一个测试 运行所有测试,看看新加的这个是不是失败了;如果能成功则重复步骤1 根据失败报错,有针对性的编写或改写代码;这一步的唯一目的就是通过测试,先不必纠结细节...(function coverage):是否每个函数都调用了 覆盖率(line coverage):是否每一都执行了 测试结果根据覆盖率被分为“绿色、黄色、红色”三种,应该视具体情况尽量提高相应模块的测试覆盖率

4.2K40

2021年React学习路线图

基础入门 这一节,我会分享一些必须学习的知识,从而可以创建简单但有用的 React 应用,结尾推荐了我用过的学习资源。...2.1 create-react-app 脚手架 https://github.com/facebook/create-react-app 通过一命令,不需要配置就可以创建 React 应用,支持 macOS...学习 React 它是可选的,但仍然是一个好用的库。 3.2 测试 Jest - 简单的 JavaScript 测试框架。 Jest 是一个简单的 JavaScript 测试框架,它注重简单性。...编写测试很重要,根据我的经验,通常比编写实际代码更难。 您应该学习最流行的测试库, Jest 和 Enzyme,以及如何使用库( Sinon )模拟 API 调用。...充分理解 React 功能总是很有用的,即使你不使用它。 在编写代码时,您可能会遇见它们,至少浏览一下这一部分,了解 React 可以做什么。

7.5K21

JavaScript测试教程–part 4:模拟 API 调用和模拟 React 组件交互

JavaScript测试教程-part 1:用 Jest 进行单元测试 2. JavaScript测试教程–part 2:引入 Enzyme 并测试 React 组件 3....我们的测试检查组件在渲染和运行之后是否从模拟调用 get函数,并成功执行。...为了说明这一点,我们将增加一个把任务添加到 ToDoList 的功能。...从测试返回 promise 是能够确保 Jest 等待其解决的一种方法。 总结 在本文中,我们介绍了模拟模块,并将其用于伪造 API 调用。由于没有发出实际的请求要求,我们的测试可以更可靠、更快。...JavaScript测试教程-part 1:用 Jest 进行单元测试 2. JavaScript测试教程–part 2:引入 Enzyme 并测试 React 组件 3.

3.7K10

React 设计模式 0x8:测试

学习如何轻松构建可伸缩的 React 应用程序:测试 # 如何测试组件 测试在每个 Web 应用程序中都非常重要,即使在 React 也是如此,特别是在其组件方面。...有两种方法可以实现这一点,包括以下内容: 功能测试 渲染测试 # 功能测试 功能测试是一种测试,用于验证函数按预期工作,这个测试通常根据被测试的函数的预期结果进行断言。...回归测试的目的在于确保一切仍然像以前一样正常工作。 可以使用 Jest 的快照测试来实现这种回归测试。...# 使用 Jest 进行集成测试 在大多数 React 应用程序,通常需要与外部 API 集成以在应用程序中发布和获取数据。 可以使用 Jest测试 API 行为,以查看预期和意外结果。...React 组件的工具和函数 编写测试用例 编写完整的测试用例,覆盖组件的所有代码路径,包括正常情况和异常情况 使用快照测试 使用 Jest 的快照测试功能来验证组件是否按预期呈现 使用模拟数据

1.8K10

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

整个应用程序的组件可能不得不共享和显示公共数据,但没有优雅的方式来处理React。毕竟,React只是一个视图层,它并没有规定如何在传统MVC模式构建应用程序的其他层,比如模型和控制器。...我们高度重视代码的可读性、可维护性和稳定性,有几种方法可以实现这一点:“广泛的测试”、“一致的编码风格”和“类型划分”。...测试- - Jest + Enzyme Jest是Facebook的一个测试库,旨在让测试过程无痛苦。与Facebook项目一样,它提供了一种开箱即用的良好开发体验。...Jest可以保存React组件和Redux状态生成的输出,并将其保存为序列化文件,这样您就不必自己手动生成预期的输出。Jest还具有内置的模拟、断言和测试覆盖率。一个图书馆来统治他们所有人!...Jest和酶使编写前端测试变得有趣和容易。因为定义了明确的职责和接口,所以React组件和Redux操作/缩减器相对容易测试也很有帮助。

7.4K20

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

这一系列实战教程,我们将手把手带你掌握 Jest、Enzyme、Cypress 等测试利器,帮助我们从 bug 的沼泽挣脱出来,成为一个无往不利的高阶前端开发者!...本篇教程是 JavaScript 测试系列实战 的第一篇教程,首先介绍了测试的类型,然后主要通过一个 React 项目教会你如何使用 Jest 编写第一个测试,然后使用 Enzyme 对 React 组件进行浅层渲染...在这一系列教程,我们将会从零开始,一步步带你熟悉从单元测试到端到端测试的方方面面。我们将会在一个 React 项目中实践所学到的自动化测试技术。...小结 在这一小节,我们首先了解了测试有哪些类型。然后我们在 CRA 脚手架编写了一个简单的函数,并为之编写了第一个单元测试,熟悉了测试用例、断言、Matcher 这些关键概念,并成功地通过了测试。...配置 jest-enzyme 你应该还记得,在刚才的测试代码,我们还是使用了 Jest 自带的 Matcher(toEqual)。

2.9K10

在 ts + Jest 单元测试 debugging

温馨提示:因微信中外链都无法点击,请通过文末的 “阅读原文” 到技术博客完整查阅版; 本文简要介绍了如何在 Jest 单元测试利用 Chrome Node DevTools 来辅助调试 1、背景 代码是...2、步骤 在认为可能失败并输入的测试插入一个 debugger。...弹出一个单独的 devtools 窗口 执行命令 node --inspect node_modules/.bin/jest --runInBand --runInBand 选项,表示仅在当前的进程连续运行所有测试...:简要总结了用 Chrome 调试和 VSCode 调试,本文所用的 Chrome 调试 就是通过这篇文章学会的 debugging-jest-tests:微软官方仓库给出的 VScode launch.json...Code:文中给出针对 ts + jest 的 launch.json 的配置项,可以借鉴一下 使用jest+enzyme进行react项目测试 - debug篇:虽说是 2017 年的文章,仍旧有可借鉴性

3.9K30
领券