enzyme 简单实践

enzyme 主要用于 React 组件测试

文档链接:https://enzymejs.github.io/enzyme/

https://www.npmjs.com/package/enzyme

Jest 断言配置:https://github.com/enzymejs/enzyme-matchers/tree/master/packages/jest-enzyme

环境依赖配置:https://github.com/enzymejs/enzyme-matchers/tree/master/packages/jest-environment-enzyme

官网星星只有 800 颗,证明实际使用的人数不是很多(因为判断组件太严格)国内的组件和功能经常更改,这里不合适。代码两年没有更新了。

简单使用

这个只是测试组件,不包括断言库,可以选择自定义的断言库(React 通常匹配 Jest 断言库)

需要在测试入口配置

import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';Enzyme.configure({ adapter: new Adapter() });

然后编写组件测试文件

import React from 'react';
import { shallow, mount, render } from 'enzyme';describe('<CollaboratorFormatter />', () => {it('basic text', () => {function Fixture() {return (<div><input id="checked" defaultChecked /><input id="not" defaultChecked={false} /></div>);}const wrapper = mount(<Fixture />);expect(wrapper.find('#checked')).toBeChecked();expect(wrapper.find('#not')).not.toBeChecked();});it('basic text', () => {function Fixture() {return (<div><input id="disabled" disabled /><input id="not"/></div>);}const wrapper = mount(<Fixture />);expect(wrapper.find('#disabled')).toBeDisabled();expect(wrapper.find('#not')).not.toBeDisabled();});it('basic text', () => {function EmptyRenderFixture() {return null;}function NonEmptyRenderFixture() {return (<div><EmptyRenderFixture /></div>);}const wrapper = mount(<EmptyRenderFixture />);expect(wrapper.find('EmptyRenderFixture')).toBeEmptyRender();const wrapper2 = mount(<NonEmptyRenderFixture />);expect(wrapper2.find('NonEmptyRenderFixture')).toBeEmptyRender();});});

渲染组件三个方式

shallow rendering:浅渲染有助于限制您将组件作为一个单元进行测试,并确保您的测试不会间接断言子组件的行为。

full DOM rendering:完整 DOM 渲染非常适用于您的组件可能与 DOM API 交互或需要测试封装在高阶组件中的组件的用例。

static rendered markup:使用 enzyme 的渲染功能从你的 React 树中生成 HTML,并分析生成的 HTML 结构。

适合不同的组件和交互

https://enzymejs.github.io/enzyme/docs/api/shallow.html

https://enzymejs.github.io/enzyme/docs/api/mount.html

https://enzymejs.github.io/enzyme/docs/api/render.html

enzyme react 组件测试相关推荐

  1. Jest + Enzyme React 组件测试实践

    ≈ 最近把组件测试接入到日常开发,提高了项目代码健壮性,可维护性.本人也从0到1收获了组件测试的经验. 本文总结一下最近两周 组件测试 相关的研究,包括: Jest + Enzyme 的基本介绍 Je ...

  2. 使用 Jest 和 Enzyme 测试 React 组件

    type: FrontEnd title: Testing React components with Jest and Enzyme link: hackernoon.com/testing-rea ...

  3. 全网最细:Jest+Enzyme测试React组件(包含交互、DOM、样式测试)

    介绍 Jest是目前前端工程化下单元测试火热的技术栈,而Enzyme的支持提供了Jest测试React业务.组件的能力,下面来介绍一下React组件测试的一些实际场景. 1. 测试依赖包 " ...

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

    你或许早已经知道"单元测试""端到端测试"这些名词,但从未真正付诸实践.在这一系列实战教程中,我们将手把手带你掌握 Jest.Enzyme.Cypress 等测 ...

  5. 怎样写一个具有异步交互的React组件的单元测试

    关于前端React组件测试(jest,Enzyme),网上有大量的入门文章,可以看看,但如果你确实想了解前端自动化测试,个人更推荐看官方的文档和一些比较官方的测试案列,这里推荐两个: enzyme官方 ...

  6. react jest测试_如何设置Jest和Enzyme来测试React Native应用

    react jest测试 by Sam Ollason 通过萨姆·奥拉森(Sam Ollason) This short article shares my experiences setting u ...

  7. react测试组件_如何测试React组件:完整指南

    react测试组件 When I first started learning to test my apps back in the day, I would get very frustrated ...

  8. react测试组件_测试驱动的开发,功能和React组件

    react测试组件 This article is part of my studies on how to build sustainable and consistent software. In ...

  9. react jest测试_如何使用React测试库和Jest开始测试React应用

    react jest测试 Testing is often seen as a tedious process. It's extra code you have to write, and in s ...

最新文章

  1. 计算机系统安装和维护实验,2计算机系统安装维护实验报告.doc
  2. Web性能API——帮你分析Web前端性能
  3. :new与:old的用法
  4. 双系统windows10扩容ubuntu16.04
  5. Outh2协议有哪四种授权模式?
  6. Zend Framework学习(4)之前端控制器
  7. 百度深度学习工程师认证(已通过)
  8. 郭依婷—大学生的创业故事
  9. Linux 简单的聊天室
  10. Colibri 片段化学空间的兴起
  11. 马哈鱼数据血缘分析工具
  12. 一步步图解 Java G1 垃圾收集器
  13. 2021 区块链行业融资:资本涌入,触发区块链应用的无限可能| 2021 区块链年报|Footprint Analytics
  14. 【前端优化】第三方字体优化方案大全
  15. 一种改进的教与学优化算法
  16. SAP中库存确定组的应用简析
  17. 无法同时打开多个PPT,并排显示
  18. 蓝桥杯大学JAVA题型_蓝桥杯 2020年省赛真题 10月第二场 (Java 大学B组)
  19. mysql经典四表查询_sql 经典四表查询
  20. 3.创建项目并初始化业务数据(电商推荐系统)

热门文章

  1. 高精度A+B、A-B、A*B、A/B
  2. 几度苍凉的伤感独特日志发布:想要逃,却怎么也逃不掉
  3. 大数据——十大基本算法介绍
  4. 小三带着孩子要与自己共同拥有老公
  5. vuex导入_vuex 引用方法
  6. c语言三个小朋友拍手,小时候经常玩的拍手游戏,就是你拍一我拍一,一个小孩开飞机,你拍二我拍二…后面是怎么说的?...
  7. RT-Thread 线程管理(学习笔记)
  8. 阿里云服务器购买以及搭建
  9. 阿里云部署docker项目流程
  10. 开源企业内部IM系统搭建