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

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

"redux-mock-store": "^1.5.3" //Redux测试模拟store } 根目录下添加jest.config.js文件作为配置文件: module.exports.../jest.setup.js'], //运行测试前需运行的初始化文件,例子在下方 moduleNameMapper: { //需要模拟的静态资源 '\\....Jest 周期函数 在写测试用例之前,可以用四个周期函数进行一些处理: beforeAll(() => { console.log('所有测试用例测试之前运行'); }); afterAll(()...(() => { console.log('每个测试用例测试完毕后运行'); }); 五、Jest Mock函数 在单元测试中,有许多对象或函数并不需要真实的引用,因此需要mock。..._onClear).toBeCalled();//测试组件实例上的方法是否被调用 九、Redux测试 在使用React或者React Native时通常会使用Redux进行状态的管理,需要mock store

6.1K30

2021年React学习路线图

3.2 测试 Jest - 简单的 JavaScript 测试框架。 Jest 是一个简单的 JavaScript 测试框架,它注重简单性。...编写测试很重要,根据我的经验,通常比编写实际代码更难。 您应该学习最流行的测试库,如 Jest 和 Enzyme,以及如何使用库(如 Sinon )模拟 API 调用。...还有其他库,比如 React 测试库。 当应用程序变得复杂时,要对单个组件进行良好的单元测试以确保正确性,而不是假设它们按预期的方式运行。...3.5 小结 Redux/Redux Thunk 测试 React 组件 React 高级概念 自己搭建一个 React 项目 React 源码 3.6 资源推荐 Redux 初学者教程 https:/...v=7r4xVDI2vho&ab_channel=TraversyMedia React 测试 https://medium.com/dailyjs/testing-react-an-overview-

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

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

    虽然目前很多新版浏览器都支持 了,支持在浏览器中直接运行 ES6 代码,但是浏览器不支持 node_modules ,所以我们的原始 ES6 代码在浏览器上依然无法运行...虽然 Jest 提供了很丰富的功能,但是并没有内置 ES6 支持,所以依然需要根据不同运行时对代码进行转换,由于 Jest 主要运行在 Node 中,所以需要使用 babel-jest 将 ES Module...Jest 工具链总结 Node 环境下测试 : Jest + babel JSDOM 测试 : Jest + babel 真实浏览器测试(不推荐) E2E 测试 : Jest + Puppeteer 稍作总结...,对于自定义子组件内部结构则无法感知。...也可以很方便测试,不过目前存在缺陷,Class Component 能通过 toHaveProp, toHaveState 直接测试, 但是 Hook 组件无法测试 useState 。

    9.6K20

    塔荐 | 2018 年最值得关注的 JavaScript 趋势

    Storybook是一个定义、开发和测试UI组件的环境。 ? 它从年初的几乎一潭死水变成年中的大规模流行,这要感谢社区的巨大努力。...Jest和Enzyme 说到JavaScript测试, Jest 无疑是领先的那个,而 Enzyme 则是很好的补充,尤其是在开发React应用的时候。...就像你 在这里看到一样 ,在下载方面Jest现在统治着Jasmine。 Jest的Snapshots功能在2017年真的起来了,使得处理测试的痛苦少量很多。...Jest和Snapshots + Enzyme超级简单的React组件测试API形成了一个很强的测试组合,会在2018年不断流行起来。 Webpack Webpack 已经崛起为最流行的资产打包工具。...总而言之,2017年对于Babel来说是个好年,它的精力主要都集中在Babel 7的开发上面(希望能在2018年初发布)。

    1.5K80

    大势 | 2018最值得关注的JavaScript趋势

    Storybook是一个定义、开发和测试UI组件的环境。 它从年初的几乎一潭死水变成年中的大规模流行,这要感谢社区的巨大努力。...就像你在这里看到一样,在下载方面Jest现在统治着Jasmine。 Jest的Snapshots功能在2017年真的起来了,使得处理测试的痛苦少量很多。...Jest和Snapshots + Enzyme超级简单的React组件测试API形成了一个很强的测试组合,会在2018年不断流行起来。 Webpack Webpack已经崛起为最流行的资产打包工具。...总而言之,2017年对于Babel来说是个好年,它的精力主要都集中在Babel 7的开发上面(希望能在2018年初发布)。...7.在一个项目上安装Prettier,让你的代码可读性更强。 8.在一个React项目上学习使用Jest截屏及Enzyme。

    80420

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

    测试- - Jest + Enzyme Jest是Facebook的一个测试库,旨在让测试过程无痛苦。与Facebook项目一样,它提供了一种开箱即用的良好开发体验。...测试可以并行运行以获得更快的速度,并且在监视模式下,只运行更改文件的测试。我们喜欢的一个特性是“快照测试”。...Jest可以保存React组件和Redux状态生成的输出,并将其保存为序列化文件,这样您就不必自己手动生成预期的输出。Jest还具有内置的模拟、断言和测试覆盖率。一个图书馆来统治他们所有人!...Jest和酶使编写前端测试变得有趣和容易。因为定义了明确的职责和接口,所以React组件和Redux操作/缩减器相对容易测试也很有帮助。...对于React组件,我们可以测试给定一些道具,呈现所需的DOM,并在某些模拟用户交互时触发回调。对于Redux还原器,我们可以测试给定的一个先验状态和一个动作,会产生一个结果状态。

    7.5K20

    开发 | 效率提升 100%,小程序开发应该这样做

    /7 代码转译(transcompile)工具 Babel。...原理是借助语法分析工具,将代码解析成抽象语法树后「重写」成最终的代码; 类似 Jest、Mocha 等 JavaScript 测试工具,可以根据需要选择。...首先是代码转译工具 Babel: 有了上面这些模块,就可以在构建时,将 ES6/7 的代码转译为 ES5 的代码了(其实解释器都只认 ES5)。...定义 npm 命令 首先是代码测试命令 test。 由于我喜欢用 Jest,所以这里也用 Jest 做范例。 接下来,就是激动人心的 build 命令。...最后的话 范例代码未实际运行,仅用以表示开发步骤。我会尽快把这个范例实现完整,放到 GitHub 上。 最后,谢谢您耐心阅读至此!

    94530

    使用storybook管理React组件

    ": "^16.6.3" } PS:由于babel-loader的最新版本是v8,需要babel版本是v7,所以按照官方教程直接安装babel-core(最高版本是v6)运行会失败,这里选择安装的是babel6...://localhost:9009 jest:integration", 第一次运行npm run test:integration可以生成UI组件渲染的一次快照,再次运行会将新旧快照进行对比,只有完全一致才能测试通过...PS:测试不通过时,运行npm run jest:integration将强制更新原有快照。...4.5 手动测试 再好的自动化测试,都和人的体验存在差距,所以发布之前还是需要经过人眼测试,因为storybook活文档的特点,我们可以直接运行体验UI组件,通过交互操作、knobs插件等来进行全面体验...Storybook Github源码 Storybook 官方网站 Jest官方文档 puppeteer官方文档 7.

    3.4K20

    2016 JavaScript 技术栈展望

    在 Redux 中,大多数的组件都是纯函数式的组件,也只有一个集中的存储和资源中心。Redux 的实例方法负责整个数据的操作和维护。相比 Flux 来说,Redux 的思路更加清晰。...通过观看这些视频,即可成为一个 Redux 方面的专家。我曾经见识到一个零基础的 React 团队在短短几周内迅速开发出了测试版产品,且代码非常稳健和老练。...对于类似运行 Webpack 的基本任务,我建议直接使用 NPM 脚本。 Mocha + Chai + Sinon 在 JavaScript 中,有大量可选的单元测试工具,每一个都很稳定和健壮。...如果你只是用于单元测试,那么现有工具完全可以胜任你的需求。 常见的测试工具有 Jasmine、Mocha、Tape、Ava、Jest 等,它们各有所长。...我对一个测试框架的要求有如下几条: 可以在浏览器运行,便于调试 执行速度快 便于处理异步测试 便于在命令行中使用 可以兼容任意断言和数据模拟的第三方库 第一条标准就排除了 Ava 和 Jest。

    2.1K40

    你不知道的 Vue 单元测试(6000字实战单元测试)

    主流的单元测试运行器有很多,比如 Jest、Mocha 和 Karma 等,这几个在 Vue-Test-Utils 文档里都有对应的教程,这里我们只介绍 Vue-Test-Utils + Jest 结合的示例...❝Jest 是一个由 Facebook 开发的测试框架。Vue 对其进行描述:是功能最全的测试运行器。它所需的配置是最少的,默认安装了 JSDOM,内置断言且命令行的用户体验非常好。...不过你需要一个能够将单文件组件导入到测试中的预处理器。我们已经创建了 vue-jest 预处理器来处理最常见的单文件组件特性,但仍不是 vue-loader 100% 的功能。...❞ 环境配置 通过脚手架 vue-cli 来新建项目的时候,如果选择了 Unit Testing 单元测试且选择的是 Jest 作为测试运行器,那么在项目创建好后,就会自动配置好单元测试需要的环境,直接能用...● JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件● 你不知道的 Npm(Node.js 进阶必备好文)● 用动画和实战打开 React Hooks(

    11.5K41

    单元测试

    对于组件下并不复杂的子组件,可考虑在父组件的测试文件中进行测试,而不需要单独的测试文件。...对于层级较深的组件,需在单测文件中增加注释,说明测试组件所在的路径 运行单测 单测执行 安装 VSCode Jest 运行插件 名称: Jest Runner ID: firsttris.vscode-jest-runner...); // 带上 jest 的类型提示 mockedGet.mockResolvedValue(resp); // 含有 jest 的类型提示 jest 单独运行每一个测试用例都可以通过测试,但是当运行一组测试用例时...,会出现报错 这种情况通常是由于在一组测试用例中,前一个测试用例没有正确地清理或重置测试环境,导致后续的测试无法找到期望的元素或状态。...这样可以确保每个测试用例都在相同的初始状态下运行,并且没有残留的状态或影响。 在每个测试用例之后使用 afterEach 函数或 afterAll 函数来清理测试环境。

    31210

    react生态下jest单元测试

    b.安装jest框架,以及依赖 cnpm install --save-dev jest babel-jest babel-core babel-preset-env regenerator-runtime...–coverage 图片 会在html-report目录下生成report.html文件 图片 2.SnapShot Testing(快照测试): 快照测试第一次运行的时候会将被测试ui组件在不同情况下的渲染结果保存一份快照文件...后面每次再运行快照测试时,都会和第一次的比较,若组件代码有所改变,则快照测试会失败,如果组件代码是最新的,优化过得代码,则需要更新快照,免得每次执行报错。...如果尝试对这些对象进行快照,它们将强制快照在每次运行时失败. //2.Jest允许为任何属性提供非对称匹配器。...如果尝试对这些对象进行快照,它们将强制快照在每次运行时失败. //2.Jest允许为任何属性提供非对称匹配器。

    2.3K20

    Unit Testing

    "test": "jest" } } 之后只需要在 Command Line 中输入 yarn test 即可开启测试 #配置时遇到的麻烦 在我配置 Jest 时遇到了几个麻烦,让我的测试代码运行不起来...运行 Jest 测试代码时出现 Cannot use import statement outside a module 不能在其他模块使用 import 语句 出现这个问题的主要原因在于 Webpack...编译时并未转换 Jest,导致测试代码不识别 ES6 语法,需要配置一下 Jest 的 transform 字段 JS 代码,需要安装 babel-jest 包来转换代码 transform: {...$": "babel-jest" } TS 代码,需要额外安装一个 ts-jest 包来解析 transform: { "^.+\\....默认会忽略 node_modules 文件夹下的文件和代码 无法识别 css scss 等样式文件 在我们组件当中大部分都会有 css 或者 scss 等文件,但是 Jest 并无法处理这类文件,此时需要将此类样式文件都

    1.3K20

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

    并行执行测试 case 提供 watch mode,很方便的可以实行 TDD 的开发模式或者更新代码的同时自动运行单元测试。 提供简单实用的 spy, mock 方法。...Jest 的 snapshot 测试不仅可以对比React tree结构的区别, 也可以对比其他可序列化的值的区别。 比如对比Redux某个状态的state是否和之前相同。...和通常的 WWW API 测试的方法几乎相同。 用Jest实现的好处是保持所有的单元测试用统一的 framework 实现和运行, 用起来比较方便。...这块测试因为需要真正的连接到 server 上, 因此可以和其他的单元测试分开以提高运行的速度。...此外还有必不可少的人工探索性测试, 来保证自动化测试无法覆盖的方面以及各种需要想象力的逻辑测试。 我认为这样的测试体系是比较安全高效的,用大量的自动化测试代替了人不擅长的重复性测试工作。

    3.3K21

    用 jest 单元测试改善老旧的 Backbone.js 项目

    的单元测试并不严谨,依赖了提供 mock 数据的 php 服务器环境 三是由于视图层没有很好的组件化,从而缺乏对视图组件的测试 jest for Backbone 的实践 jest 是比较新的测试框架...", "babel-eslint": "^6.1.2", "babel-jest": "^22.1.0", "babel-preset-es2015": "^6.24.1", "...build 时运行测试 目标项目中,其实是用 babel 5 做的 ES6 转译;但是由于之前的源代码已经全部采用了 ES6 语法开发(部分初始 AMD 代码也做过自动转化),所以我们完全可以在测试时采用较新的...总结 jest 灵活的配置能力,使其能方便的应用于各种类型既有项目的 TDD 开发和重构 之前的其他测试框架下的用例,可以快速迁移到 jest 中 Backbone.View 视图组件在经过 ES6 升级和合理封装后...组件引入的模板,也可以用 jest.doMock() 很好的支持 将单元测试任务加入原有的 build 工作流,可以保证相关代码之后的持续有效 (end)

    3.5K10

    React + Redux Testing Library 单元测试

    在同一个文件夹中创建一个 math.test.js 文件,在这里我们将使用 Jest 来测试 math.js 中定义的函数: image.png 然后运行 yarn test (添加 NPM Script...从技术上讲,你可以在真实的浏览器中运行,但由于在不同平台上启动真实浏览器的复杂性,更建议使用 JSDOM 在虚拟浏览器环境中运行 Node 中的测试。...Redux store 的交互 前面我们讲完了 Redux 单元测试所需要的基本知识,而 React 组件需要从 Redux store 读取状态或者是发送 action 改变 store 状态的时候...接下来就来聊聊如何用 React Test Utils 测试 React 组件中的 Redux。...没有高覆盖率、快速运行的单元测试,重构就不可能落地。 测试驱动开发是获得高质量单元测试集的唯一有效方法。 建立在充分覆盖且运行快速的自动化测试基础上的持续集成是迭代式开发的必要条件。

    2.4K10
    领券