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

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

一、技术选型: Jest + Enzyme + react-hooks-testing-library 1.1 jest Jest是FaceBook出品的前端测试框架,适合用于React和React...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获取数据,需要进行异步的模拟测试。

6.2K30

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.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    自动化测试工具在敏捷开发中的选择与使用

    它支持多种编程语言(如Java、Python、C#等)以及不同的浏览器(如Chrome、Firefox等),适合做UI测试和回归测试。 优点: 支持多种浏览器和编程语言,跨平台性强。...Jest Jest 是一个主要用于JavaScript应用的测试框架,特别适合React、Vue等前端框架的单元测试和集成测试。Jest由Facebook开发,具有开箱即用的特点,无需复杂的配置。...例如: 前端项目:如果是 JavaScript 框架(如React、Vue、Angular)构建的前端项目,优先选择Jest或Cypress,因为它们与JavaScript生态兼容性好。...Cypress在项目中的应用 为了展示如何在敏捷开发中应用自动化测试工具,下面我们将展示如何使用Cypress进行端到端测试。假设我们有一个简单的待办事项应用,用户可以添加、查看、删除待办事项。...总结 敏捷开发环境中的自动化测试工具选择需要根据项目的技术栈和测试需求进行。

    15410

    从工程化角度讨论如何快速构建可靠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

    Jest + React Testing Library 单测总结

    2、Jest 的使用 Jest 的安装这里就不赘述了,如果使用 create-react-app 来创建项目,Jest 和 React 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.6K20

    React Hook测试指南

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

    1.8K10

    用 Jest 进行 JavaScript 测试

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

    2.8K30

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

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

    15K33

    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.2K50

    对 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.3K40

    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.7K21

    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.8K10

    React 设计模式 0x8:测试

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

    1.8K10

    用于浏览器中视频渲染的时间管理 API

    来源:Demuxed 2021 主讲人:Jacques Blom 内容整理:张雨虹 本次演讲主要介绍了浏览器中视频渲染的时间管理,如何在 React 中实现时间状态跟踪,包括:1)采用“派生状态”的概念以实现可靠...、确定性的渲染;2)通过各种技术优化性能;3)如何测试基于时间的状态(或者,如何在测试中进行时间的移动);4)如何将各种类型的媒体(视频、字幕等)与单一事实来源同步。...因此,为了解决这一问题,我们设想与其让所有这些不同的循环分散在代码库中,不如设计一个计算当前时间的中心循环,使得组件能够有效地响应,而不是每一帧都重新渲染。...整个流程中唯一真正涉及 React 的是最后一部分,因此计算成本不高。...为了解决这一问题,需要用设置的超时替换 requestAnimationFrame 并使用 Jest 的 useFakeTimers 功能,在 Jest 的超时中关闭实时。

    2.3K10

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

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

    3K10
    领券