【vitest 单元测试】如何蹭 ant-design-web3 的PR

这篇文章分享单测经验,希望你能收获到有用的单测知识或者pr思路,填补单测的过程可以深刻理解组件内部的每一个流程,相信一定有所收获。

ant-design-web3

  • 前言
  • 查看单测覆盖情况
    • 运行命令,本地会生成一份临时目录
    • 通过live server打开html即可
    • 点开具体文件地址,可以查看文件覆盖的行数
  • 开发场景的经验
    • 只执行某个文件的test
    • 响应式场景
    • 查看dom
    • modal关闭

前言

  • 最近刚好在做一些单测覆盖的工作,在排查执行不到的地方的过程,可以梳理整个组件执行的脉络,甚至发现一些可以优化组件的地方。

  • 正常我们写完一个组件之后应该根据预期的执行来写好单测,这样的话如果后面有其他人动了逻辑,pr的时候ci就会进行单测,然后指出报错的地方。我的第一个单测试从下图中最下面的第一个开始的,当时修了一个issue中的bug,然后需要对应去补充一些单测。

  • 通过render渲染组件,也可以用react的hook 或者vi.mock去模拟一些事件,点击事件的话可以用fireEvent来模拟。

import React, { useEffect } from 'react';
import { fireEvent, render } from '@testing-library/react';
import { describe, expect, it, vi } from 'vitest';

在这里插入图片描述

查看单测覆盖情况

运行命令,本地会生成一份临时目录

pnpm run test:coverage

1

通过live server打开html即可

在这里插入图片描述

点开具体文件地址,可以查看文件覆盖的行数

发现有红的,我们就可以写单测去完善优化它。
在这里插入图片描述

开发场景的经验

只执行某个文件的test

在这里插入图片描述

响应式场景

modal 在尺寸过于小的时候,会触发其他的模式,可能页面显示上会有点不一样

    vi.spyOn(Grid, 'useBreakpoint').mockReturnValue({md: true, // ≥ 768px, mock PC});

查看dom

通过 console.log(baseElement.outerHTML);直接输出整个dom的结构
在这里插入图片描述

modal关闭

    fireEvent.click(baseElement.querySelector('.ant-modal-close')!);await vi.waitFor(() => {expect(baseElement.querySelector('.ant-web3-connect-button-profile-modal')?.className,).toContain('ant-zoom-leave');});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/338950.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

频率阈图像滤波

介绍 频率阈图像滤波是一种在频域中进行图像处理的方法,它基于图像的频率分布来实现滤波效果。具体步骤如下: 将原始图像转换到频域:使用快速傅里叶变换(FFT)将图像从空间域转换到频域。对频域图像应用频率阈滤波器&a…

“当实力撑不起野心的时候,学习才是唯一的出路”(2023回顾与展望)

“当实力撑不起野心的时候,学习才是唯一的出路”,窃以此言铭已,以激励学习路上不懈怠。这是我今年最庆幸的事:窃得一条铭言💪 (笔记模板由python脚本于2024年01月07日 13:57:54创建,本篇笔记适合尝试学习编…

Python-代码雨【附源码】

Python-代码雨 运行效果:实现的是动态的代码雨 import sys import random import pygame from pygame.locals import *# 屏幕大小 WIDTH 800 HEIGHT 600 # 下落速度范围 SPEED [15, 30] # 字母大小范围 SIZE [5, 30] # CODE长度范围 LEN [1, 8]# 随机生成一个…

Windows启动MongoDB服务报错(错误 1053:服务没有及时响应启动或控制请求)

问题描述:修改MongoDB服务bin目录下的mongod.cfg,然后在任务管理器找到MongoDB服务-->右键-->点击【开始】,启动失败无提示: 右键点击任务管理器的MongoDB服务-->点击【打开服务】,跳转到服务页面-->找到M…

TypeScript进阶(二)深入理解装饰器

✨ 专栏介绍 TypeScript是一种由微软开发的开源编程语言,它是JavaScript的超集,意味着任何有效的JavaScript代码都是有效的TypeScript代码。TypeScript通过添加静态类型和其他特性来增强JavaScript,使其更适合大型项目和团队开发。 在TypeS…

第20集《佛法修学概要》

戊二、述义(三) 请大家打开讲义第五十一页,我们讲到实相的义理第三段。 (三)若人欲了知,三世一切佛,应观法界性,一切唯心造。 ——《华严经》—— 佛陀出世以后,看到…

C语言九九乘法表打印最全!

九九乘法表共 9 行 9 列,重点考察 for 循环的掌握情况。 适合刚学习C语言的同学来练习! 输出完整的三角形: 运行结果: 1*1 1 1*2 2 1*3 3 1*4 4 1*5 5 1*6 6 1*7 7 1*8 8 1*9 9 2*1 2 2*2 4 2*3 6 2*4 8 2*510 2*612 2*714…

了解结构体以及结构体数组

C语言的结构体你真的了解吗? 一起来看一下吧!!! 1.结构体是啥? 结构体是多种数据类型的组合体 2.格式(一般放在主函数前,也就是int main()前面 ) 关键字 结构体名字 {成员列表…

Linux 文件(夹)权限查看

命令 : ls -al ls -al 是一个用于列出指定目录下所有文件和子目录的命令,包括隐藏文件和详细信息。其中,-a 选项表示显示所有文件,包括以 . 开头的隐藏文件,-l 选项表示以列表的形式显示文件的详细信息。 本例中:drwxrwxr-x 为权限细节。 权限细节(Permission detail…

rke2 Online Deploy Rancher v2.8.0 latest (helm 在线部署 rancher v2.8.0)

文章目录 1. 简介2. 预备条件3. 安装 helm4. 安装 cert-manager4.1 yaml 安装4.2 helm 安装 5. 安装 rancher6. 验证7. 界面预览 1. 简介 Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。 Rancher 可以创建来自 Kubernetes 托…

1.10 Unity中的数据存储 XML

一、XML 1.介绍 XML是一个文档后缀名是*.xmlXML是一个特殊格式的文档XML是可扩展的标记性语言XML是Extentsible Markup Language的缩 写XML是由万维网联盟(W3C)创建的标记语言,用于定义编码人类和机器可以读取的文档的语法。它通过使用定义文档结构的标签以及如何…

陶瓷碗口圆度检测案例-圆心定位与圆度检测

检测原理 从陶瓷外边界上面随机提取3个点,并以其行列位置为横纵坐标构造三对坐标点。利用此三点可确定三角形外心。公式计算如下: x0和y0为圆心的位置坐标,为标准圆的半径。 在实际中,存在以下两种情况会导致上述算法无法准确计…