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

React 设计模式 0x8:测试

# 渲染测试 渲染测试是一种测试,用于验证您的组件是否正确渲染。 # 使用 Jest 进行功能测试 Jest 是测试 React 应用程序时非常流行的测试库。...初始化测试项目: npx create-react-app testing-with-jest cd testing-with-jest npm install --save-dev jest 测试文件一般以...如果快照不匹配,则测试将失败。 # 使用 Cypress 进行端到端(e2e)测试 当涉及端到端测试时,Cypress 在其他框架/库中处于领先地位。...React 组件的工具和函数 编写测试用例 编写完整的测试用例,覆盖组件的所有代码路径,包括正常情况和异常情况 使用快照测试 使用 Jest 中的快照测试功能来验证组件是否按预期呈现 使用模拟数据...,确保各个组件之间的交互和数据传递是正确的 使用 CI/CD 将测试集成到 CI/CD 管道中,以便在每个提交时自动运行测试并及时发现问题 运行覆盖率测试 运行覆盖率测试以检查测试代码是否覆盖了应用程序的所有部分

1.8K10

2021年React学习路线图

React Hook 是 React 16.8 引入的新特性。它用在函数组件中,允许开发者不使用类的情况下,使用状态和其他特性。 之前,函数组件是无状态的,状态和生命周期用在类组件中。...学习 React 中它是可选的,但仍然是一个好用的库。 3.2 测试 Jest - 简单的 JavaScript 测试框架。 Jest 是一个简单的 JavaScript 测试框架,它注重简单性。...编写测试很重要,根据我的经验,通常比编写实际代码更难。 您应该学习最流行的测试库,如 Jest 和 Enzyme,以及如何使用库(如 Sinon )模拟 API 调用。...还有其他库,比如 React 测试库。 当应用程序变得复杂时,要对单个组件进行良好的单元测试以确保正确性,而不是假设它们按预期的方式运行。...您可以在 create-react-app 创建的 React 应用上运行 eject,以了解 React 代码是怎样转换并运行在浏览器上。

7.6K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何测试驱动开发 React 组件?

    它的原理就是在编写代码之前先编写测试用例,由测试来决定我们的代码。而且 TDD 更多地需要编写独立的测试用例,比如只测试一个组件的某个功能点,某个工具函数等。...TDD 的过程 编写测试用例 运行测试,测试失败 修改代码 测试通过 重构/优化代码 新增功能,重复上述步骤 image.png 在某种程度上,它可能在初学者看来是单调乏味或者不切实际的,但是严格按照这个步骤来做这件事...测试组件 首先使用 create-react-app 初始化一个 react 项目。目前 cra 已经内置了 @testing-library/react 作为测试框架。...npx create-react-app my-react-app 我们先从测试文件开始。先创建了组件的目录“Confirmation” 并在其中添加一个“index.test.js”文件。..."> } export default Confirmation 然后把这个组件导入到测试中,它现在通过了。

    2.2K10

    如何测试驱动开发 React 组件?

    它的原理就是在编写代码之前先编写测试用例,由测试来决定我们的代码。而且 TDD 更多地需要编写独立的测试用例,比如只测试一个组件的某个功能点,某个工具函数等。...TDD 的过程 编写测试用例 运行测试,测试失败 修改代码 测试通过 重构/优化代码 新增功能,重复上述步骤 在某种程度上,它可能在初学者看来是单调乏味或者不切实际的,但是严格按照这个步骤来做这件事,...测试组件 首先使用 create-react-app 初始化一个 react 项目。目前 cra 已经内置了 @testing-library/react 作为测试框架。...npx create-react-app my-react-app 我们先从测试文件开始。先创建了组件的目录“Confirmation” 并在其中添加一个“index.test.js”文件。..."dialog">; }; export default Confirmation; 然后把这个组件导入到测试中,它现在通过了。

    2.1K10

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

    集成测试则是用来测试跨模单元/模块的过程,可以很好地确保我们的代码能够作为一个整体运行。 端到端测试(E2E) 与其他类型的测试不同,E2E 测试总是在浏览器(或类浏览器)环境中运行。...Jest 测试,我们来详细讲解一下: 我们先导入需要测试的单元/模块 test 函数定义了一个测试用例,第一个参数就是用例描述,一般是一句完整的描述,例如上面的 dividing 6 by 3 equals...,可参考 Expect API CRA 已经为我们配置好了 Jest,这里直接运行 npx jest 命令,就可以看到测试结果了: PASS ....它允许我们在运行测试时,只渲染父组件而不渲染其所有的子组件。浅层渲染十分快速,因此非常适合单元测试。...Enzyme 浅层渲染后的组件还包括其他测试方法,可参考 https://enzymejs.github.io/enzyme/docs/api/shallow.html。

    3K10

    2020 年你应该知道的 React 库

    当我从 Angular 切换到 React,我绝对经历了它作为 React 的优势。 只有通过 React,您才能使用函数组件和 props 构建组件驱动的用户界面。...React 社区的现状是通过 Facebook 的 create-react-app(CRA)。它提供了一个零配置的设置,并给你一个开箱即用并且简单的启动和运行的 React 应用程序。...它提供了测试运行程序、断言库和监视(spying)/模拟(mocking)/stubbing 功能, 一个全面的测试框架中需要的所有东西。...至少,您可以使用 React-test-renderer 在 Jest 测试中渲染 React 组件。这已经足以用 jest 来执行所谓的快照测试了。...快照测试的工作方式如下: 运行测试之后,将创建 React 组件中渲染的 DOM 元素的快照。当您在某个时间点再次运行测试时,将创建另一个快照,用作前一个快照的差异。

    14.4K40

    2022 年的 React 生态

    React 社区中大多数会给推荐 Facebook 的 create-react-app (CRA)。它基本上零配置,为你提供开箱即用的简约启动和运行 React 应用程序。...你可以使用 react-test-renderer 在你的 Jest 测试中渲染 React 组件。...这已经足以使用 Jest 执行所谓的 Snapshot Tests 了:一旦运行测试,就会创建 React 组件中渲染的 DOM 元素的快照。...当你在某个时间点再次运行测试时,将创建另一个快照,这个快照会和前一个快照进行 diff。如果存在差异,Jest 将发出警告,你要么接受这个快照,要么更改一下组件的实现。...最近 React Testing Library (RTL) 也比较流行(在 Jest 测试环境中使用),它可以为 React 提供更精细的测试。

    5.8K20

    前端测试体系建设与最佳实践总结

    Karma 能在真实的浏览器中测试,强大适配器,可配置其他单测框架,一般会配合 Mocha 或 Jasmine 等一起使用。 每个框架都有自己的优缺点,没有最好的框架,只有最适合的框架。...它拥有更简洁易用的 API,更快的运行速度,已逐渐成为业内自动化测试的标杆,俘获大量 Selenium 用户的心。可以看下近年来 e2e 测试框架的 npm trends. ?...单元测试和 UI 测试的文件夹统一命名为 tests,测试文件以 .test.js 为后缀 将 tests 文件夹与它们正在测试的代码放在同级目录下,以便相对路径导入时路径更短 e2e 测试的文件夹命名为...e2e,并与 src 同放在根目录下 VScode 和 WebStorm 都有对应的 Jest 插件,安装后书写代码时有代码补全,debug 和自动运行等功能 如何编写测试 其实,Jest 的语法蛮简单的...函数组件 下面简单的看一个加减菜组件的测试(精简了一部分逻辑)。

    5.4K30

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

    因此单元测试的概念在前端领域应运而生,通过编写单元测试可以确保得到预期的结果,提高代码的可读性,如果依赖的组件有修改,受影响的组件也能在测试中及时发现错误。 测试类型又有哪些呢?...Jest 关于Jest,我们参考一下其Jest 官网[1],它是Facebook开源的一个前端测试框架,主要用于React和React Native的单元测试,已被集成在create-react-app...:配置文件,在运行测试案例代码之前,Jest 会先运行这里的配置文件来初始化指定的测试环境 testMatch: 定义被测试的文件 transformIgnorePatterns: 设置哪些文件不需要转译...当有异步代码的时候,测试代码跑完同步代码后不立即结束,而是等结束的通知,当异步代码执行完后再告诉jest:“好了,异步代码执行完了,你可以结束任务了”。...总结 到这里,关于前端单元测试的一些基础背景和Jest的基础api就介绍完了,在下一篇文章中,我会结合项目中的一个React组件来讲解如何做组件单元测试。 ?

    5K20

    Jest + React Testing Library 单测总结

    1.2 测试框架和 UI 组件测试工具 而说起前端的测试框架和工具,比较主流的 JavaScript 测试框架有 Jest、Jasmine、Mocha 等等,并且还有一些 UI 组件测试工具,比如 testing-libraray...2、Jest 的使用 Jest 的安装这里就不赘述了,如果使用 create-react-app 来创建项目,Jest 和 React Testing Library(RTL) 都已经默认安装了。... }); }); 通过运行 npm run jest (运行所有的 test suite 和 test case,以及断言),或者 npm run jest -t somefile.test.tsx(...运行指定文件中的测试用例),就可以得到测试结果,如: 当然,如果想要看到覆盖率的报告,可以使用 jest --coverage,或者 jest-report。...除了前端组件的匹配器,一些扩展库也依据不同的测试场景衍生出了很多其他的匹配器。

    4.6K20

    用TypeScript编写React的最佳实践

    你可以运行以下面的命令: npx create-react-app my-app --template typescript 这可以让你开始使用 TypeScript 编写 React 。...组件 React 的核心概念之一是组件。在这里,我们将引用 React v16.8 以后的标准组件,这意味着使用 Hook 而不是类的组件。 通常,一个基本的组件有很多需要关注的地方。...每个 Props 上方都有简短的说明,以为其他开发人员提供更多背景信息。? 表示 Props 是可选的。...你可以通过运行: #yarn yarn add @types/ #npm npm install @types/ 例如,如果您使用的是 Jest...,则可以通过运行以下命令来实现: #yarn yarn add @types/jest #npm npm install @types/jest 这样,每当在项目中使用 Jest 时,就可以增加类型安全性

    4.7K51

    React 测试驱动开发:从用户故事到产品

    》 《更可靠的 React 组件:从"可测试的"到"测试通过的"》 《如何测试 React Hooks ?》...《Vue 测试指南中文版》 应用概览 我们将创建一个由某些 UI 组件构成的番茄计时器基础应用。每一个组件都会在相关的一个测试文件中拥有独立的一组测试。...线框图 项目设置 首先,我们使用 Create React App 创建如下这样的一个 React 项目: $ npx create-react-app react-timer $ cd react-timer...正如你或许已经知道的,TDD 过程可能看起来像这样: 添加一个测试 运行所有测试,不出所料的失败 编写代码以通过测试 再次运行所有测试 重构代码 周而复始 因此,我们先添加一个浅渲染(shallow...添加组件 接下来创建 App 组件以通过测试。

    3.3K30

    Cypress 10.x 组件测试指南

    React APP,当然你也可以选择列表中的其他选项。...运行测试用例 测试用例的运行基本不变,你可以直接: npx cypress run 但是你也知道我不推荐。我们去更改项目根目录下的package.json文件。给它添加下如下scripts部分。...查看Log得知: ”Relative imports outside of src/ are not supported“, 也就是说,我们的测试文件里,导入的相对路径超出了src文件夹,所以我们运行失败...这样符合这个pattern的便都是Component 测试。 把你的Component测试文件移到src下。跟你要测试的组件同目录。避免无法导入。...疑惑点 如果框架使用的是create-react-app,那么你在组件测试导入时,必须保证导入的路径在src下。

    1.2K20

    React菜鸟进阶史之构建项目

    一,创建应用 create-react-app 是React 官方推荐的,默认支持的,无配置的项目构建工具之一。 那什么叫无配置的呢?...其实用过其他脚手架项目构建工具的人都知道,使用其他脚手架工具构建前端项目时有诸多需要选择的选项,项目目录里有额外的其他的资源目录,比如umijs。...my-app-ts --template typescript # 或 npx create-react-app my-app-ts --template typescript 二,必要的配置 项目创建好了以后我们还需要安装其他的一些必要的依赖...在开发react前端项目的时在某个组件代码中引入另一个组件代码时一般的情况下用 "."...来替代上一级目录,如果选哟引入的组件的所在位置变的稍微深就更麻烦比如: import "../../../TestComponent"; 因此我们需要加入路径别名的方式优化文件引入方式。

    71540

    使用 TypeScript 编写 React.js 应用 | 笔记

    引言 React.js 仅使用具有 Hooks 的 函数式组件 Built-in React Hooks – React 使用 create-react-app 创建工程 TypeScript React...在 ProjectList 组件中, 删除 ProjectListProps 接口中的 onSave 并将组件更新为不传递 onSave 到 , 因为它现在在导入此操作后自行调度此操作...yarn test image-20230625011407890 创建您的第一个组件测试 创建文件 src\home\HomePage.test.tsx 添加测试以验证组件浅层渲染而不会崩溃 src...如果您有 CI 设置,请运行以下命令作为其中的一部分,以确保每个人都运行更漂亮。这避免了合并冲突和其他协作问题! --check 类似于 --write ,但仅检查文件是否已格式化,而不是覆盖它们。...(你不希望编辑器意外地引起大量更改,因为当没有本地安装 prettier 时, 就会使用编辑器扩展自带的 prettier) 能够从命令行运行 Prettier 仍然是一个很好的后备,并且是 CI/CD

    87990
    领券