Vue3+Typescript+Vitest单元测试+组件Props篇

news2024/12/21 22:04:03

上一节我们学习了如何测试组件内部的emit事件组件事件测试篇,这一节我们来测试一下组件的props

新增一个组件ZmTag

非常简单,就是可以接受三个参数,然后我们分别来测试三个参数传入的效果

import { defineComponent } from "vue";

const ZmTag = defineComponent({
  name: "ZmTag",
  props: {
    //标签的颜色
    color: {
      type: String,
      default: "blue",
    },
    //标签是否可用
    disabled: {
      type: Boolean,
      default: true,
    },
    //标签内部的文本
    text: {
      type: String,
      default: "",
    },
  },
  setup(props, context) {
    return () => (
      <button
        class={props.disabled ? "is-disabled" : ""}
        style={{ color: props.color }}
      >
        {props.text}
      </button>
    );
  },
});
export default ZmTag;

然后创建对应的测试文件tag.test.tsx

这里写了三个测试用例,第一个照例是测试是否渲染,然后下个测试text是否被渲染,然后是测试禁用效果,其实prop测试是非常简单的
在这里插入图片描述

运行测试代码

注意,上一章说过,输入文件名字可以过滤要测试的文件,节约系统资源,可以看到都是测试通过的
在这里插入图片描述

好了最基本的组件测试我们都搞定了,剩下的进阶内容就是如何测试一个异步组件?如何测试那些弹窗、下拉框之类会在使用时动态新增一些内容的情况,这一部分我就不写例子了,写起来比较麻烦,下次我们直接源码分析Element-Plus的组件

最后让我们试试生成测试覆盖报告

第一步是检查一下配置文件是否配置正确

检查vite.config.ts文件中是否配置了如下的内容
在这里插入图片描述

检查是否安装c8依赖,当然不安装也会在执行命令时提示你,例如下面的提示按y即可

在这里插入图片描述

最后就是配置运行命令

在package.json文件中加入如下命令
在这里插入图片描述

执行命令,查看效果

pnpm coverage

在这里插入图片描述
注意,这里同时会生成一个文件夹,默认是coverage,可以去官网配置修改
在这里插入图片描述
打开index.html可以查看可视化的覆盖报告
在这里插入图片描述

好了,自己去试试吧!单元测试并不能带来额外的收益,写起来也很枯燥,但是验证组件的健壮性、扩展性、安全性所应该做的事情,当然更重要的是你如何让别人一下子知道你写的组件真的很棒!一份100%覆盖率的报告胜过所有雄辩。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python GUI设计——Python语言介绍

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 写在前面 本Python专栏主要讲解 PythonGUI设计 tkinter从入门到实践 系列&#xff0c;本…

PHP实现使用函数实现对数组进行排序

目录 前言 一、使用函数实现对数组进行排序 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 1.3运行截图 前言 1.若有选择&#xff0c;可实现在目录里进行快速查找&#xff1b; 2.本弹窗界面可以根据简单的要求实现一使用功能。同时可以实现自定义的设置&#xff1…

最受信任的低代码平台排行榜

近年来&#xff0c;随着数字化转型的兴起&#xff0c;低代码平台获得了大量关注。它允许用户在几乎没有编码知识的情况下创建应用程序&#xff0c;从而使企业能够简化其流程并提高效率。随着低代码平台的日益流行&#xff0c;要确定哪些平台最可靠、最值得信赖并非易事。在本文…

三步配置轻量级服务器nginx

这里写目录标题 一 nginx及其应用场景1.什么是nginx2.应用场景背诵 二 nginx的配置安装1.选择nginx版本2. 安装配置环境3.安装nginx4.启动nginx 三 访问 一 nginx及其应用场景 1.什么是nginx 一款轻量级的Web服务器&#xff0c;反向代理服务器&#xff0c;以及电子邮件代理服…

16.props

props是组件的自定义属性&#xff0c;可以提高组件的复用性&#xff0c;比如 做点击计数器的时候&#xff0c;我可以让计数器组件在A处赋初始值10&#xff0c;在B处赋初始值20 目录 1 基本用法 2 给默认值 default 3 值类型 type 4 是否必填 required 1 基本用法 pr…

【计算机网络】网络命令的使用

文章目录 一、实验目的二、实验工具三、实验要求四、实验过程01 ping 命令的使用应用1&#xff1a;验证本地计算机上是否正确安装了 TCP/IP 协议应用2&#xff1a;测试某个目的主机可达性应用3&#xff1a;键入 ping&#xff0c;查看 ping 的其他参数含义 02 netstat 命令的典型…

求你看完再去面试,涨薪必备分布式事务小抄,狂怼面试官~

分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说&#xff0c;就是一次大的操作由不同的小操作组成&#xff0c;这些小的操作分布在不同的服务器上&#xff0c;且属于不同的应用&#xff0c;分布式…

尚硅谷爬虫(解析_xpath的基本使用)笔记

1、xpath的基本使用 创建一个简单的HTML&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><ul><li>北京</li><li&…

华为OD机试真题(Java),数字涂色(100%通过+复盘思路)

一、题目描述 疫情过后&#xff0c;希望小学终于又重新开学了&#xff0c;三年二班开学第一天的任务是将后面的黑板报重新制作。 黑板上已经写上了N个正整数&#xff0c;同学们需要给这每个数分别上一种颜色。 为了让黑板报既美观又有学习意义&#xff0c;老师要求同种颜色的…

网络编程与select/poll/epoll服务器的实现

目录 什么是网络编程&#xff1f;网络编程效果演示阻塞与非阻塞的区别阻塞状态一个server对应一个client运行结果连接之前点击连接之后&#xff0c;并发送信息 非阻塞状态一个server对应一个client运行结果 为什么要使用while循环来反复读取数据运行结果运行之前连接之后server…

“老司机”机器视觉工程师警告,硬件,软件,固件,程序使用新版本务必谨慎

做任何事情之前&#xff0c;程序先保存。没保存&#xff0c;真的会哭的。千万别保存在系统盘。​ 机器视觉最终的目的解决是什么问题&#xff1f;项目验收结束。 如果公司不知道或者希望去测试新的东西&#xff0c;要积极主动去使用&#xff0c;也会学到很多新的东西&#xff…

苦中作乐 ---竞赛刷题71-88(15-20) 完结篇

&#xff08;一&#xff09;目录 L1-071 前世档案 L1-072 刮刮彩票 L1-077 大笨钟的心情 L1-078 吉老师的回归 L1-079 天梯赛的善良 L1-080 乘法口诀数列 L1-085 试试手气 L1-086 斯德哥尔摩火车上的题 L1-087 机工士姆斯塔迪奥 L1-088 静静的推荐 &#xff08;二&…

Java核心技术 卷1-总结-16

Java核心技术 卷1-总结-16 线程属性线程优先级守护线程未捕获异常处理器 同步竞争条件的一个例子竞争条件详解锁对象 线程属性 线程的各种属性包括&#xff1a;线程优先级、守护线程、线程组以及处理未捕获异常的处理器。 线程优先级 在Java程序设计语言中&#xff0c;每一个…

STM32中断详述——外部EXTI

前置知识 中断&#xff1a;在主程序运行过程中&#xff0c;出现了特定的中断源&#xff0c;使得CPU暂停当前正在运行中的程序&#xff0c;转而去处理中断程序&#xff0c;处理完成后又返回原来被暂停的位置继续执行&#xff0c;可以参考图1所示。 图1 中断程序图 中断优先级&a…

法雷奥,百年巨头的新周期

传统汽车零部件Tier1正在加速适应全球智能化、电动化的汽车产业新变革趋势。同时&#xff0c;继续扩大在中国市场的投资&#xff0c;并强化本土化研发能力和资源投入&#xff0c;已经是大势所趋。 “2022年&#xff0c;法雷奥启动了’Move Up’计划&#xff0c;确定了四个符合市…

PC1 - 搭建项目

先看路由&#xff0c;可以查看功能模块划分。熟悉什么看什么 router文件夹下routerConfig.tsx 配置路由&#xff0c;创建模块文件&#xff08;写好内容模块&#xff09;&#xff0c;lazy可懒加载导入。App.tsx配置一级路由&#xff0c;配置二级路由出口 { path:/, element: …

PTA L2-046 天梯赛的赛场安排 (25 分)

天梯赛使用 OMS 监考系统&#xff0c;需要将参赛队员安排到系统中的虚拟赛场里&#xff0c;并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们&#xff0c;以便发放比赛账号。为了尽可能减少教练和监考的沟通负担&#xff0c;我们要求赛场的安排满…

「教程」天气预警 API 详解:申请密钥到接入代码一气呵成!

引言 天气预警 API 作为一种新型的数据接口&#xff0c;为开发者和应用提供了方便的获取天气预警数据的方式。通过该 API &#xff0c;可以获取指定城市当前生效中的各类天气预警信息&#xff0c;例如暴雨、雷电、台风等。预警数据来自国家预警中心&#xff0c;保证了数据的高…

Linux部署人大金仓(Kingbase8)

陈老老老板&#x1f9b8; &#x1f468;‍&#x1f4bb;本文专栏&#xff1a;国产数据库-人大金仓&#xff08;kingbase8&#xff09;&#xff08;主要讲一些人大金仓数据库相关的内容&#xff09; &#x1f468;‍&#x1f4bb;本文简述&#xff1a;本文讲一下LInux上部署人大…

《计算机网络——自顶向下方法》精炼——2.3-2.4

<font color-#FFD700>“Knowledge is power” - Sir Francis Bacon 文件传输协议&#xff1a;FTP FTP协议可以在本地文件系统和远程文件系统之间传输文件。 概述 FTP在用户和服务器之间架起两条TCP连接&#xff0c;控制连接和数据连接。 控制连接&#xff1a;控制连…