当前位置: 首页 > news >正文

单元测试学习笔记

单元测试是软件测试的基础层级,主要针对代码的最小可测试单元进行验证。单元测试可以帮助快速定位问题边界,提升代码可维护性,支持安全的重构操作。

测试对象:

  • 独立函数/方法
  • 纯工具类(如数据处理函数)
  • UI组件(不依赖外部环境的独立组件)
  • 自定义Hooks(React场景)
工具类型推荐方案特点
测试框架Jest/Vitest零配置、快照测试
DOM测试库Testing Library用户行为导向的组件测试
覆盖率统计Istanbul/NYC可视化报告生成
Mock解决方案Jest.fn + MSW网络请求/定时器模拟

demo:

// 工具函数
export const formatPrice = (num) => {
  if (typeof num !== 'number') return '0.00'
  return num.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ',')
}

// 测试用例
test('格式化金额显示', () => {
  expect(formatPrice(1234.56)).toBe('1,234.56')
  expect(formatPrice(null)).toBe('0.00')      // 边界值测试
  expect(formatPrice('invalid')).toBe('0.00') // 异常输入处理
})
 

// React组件测试

import { render, screen } from '@testing-library/react'

test('显示加载状态', () => {
  render(<LoadingSpinner visible={true} />)
  expect(screen.getByRole('status')).toBeInTheDocument()
  expect(screen.queryByText('Loading...')).not.toBeNull()
})

test('隐藏加载状态', () => {
  render(<LoadingSpinner visible={false} />)
  expect(screen.queryByRole('status')).toBeNull()
})
 

// vue组合式api测试

import { useCounter } from './counter'
import { ref } from 'vue'

test('计数器功能', () => {
  const { count, increment } = useCounter(ref(5))
  
  expect(count.value).toBe(5)
  increment()
  expect(count.value).toBe(6)
})
 

http://www.xdnf.cn/news/609949.html

相关文章:

  • mqtt协议(cJSON格式举例)
  • 交换机的连接方式堆叠和级联
  • 3D个人简历网站 6.弹出框
  • 基于OAuth2-proxy和Keycloak为comfyui实现SSO
  • 深入解析Spring Boot与Redis集成:高性能缓存实践
  • 软件工程(八):UML类图的几种关系
  • Redis-RedisShake数据迁移工具
  • Linux--初识文件系统fd
  • Python的FastApi随笔记
  • MySQL强化关键_016_存储引擎
  • 每天分钟级别时间维度在数据仓库的作用与实现——以Doris和Hive为例(开箱即用)
  • 第四十七节:图像分割-分水岭算法
  • canal实现mysql数据同步
  • JavaWeb面试题 (一)
  • window 显示驱动开发-视频内存供应和回收(三)
  • STM32F103_Bootloader程序开发01 - 什么是IAP?跟OTA有什么关系?
  • 关于 Web 风险点原理与利用:6. 逻辑风险点
  • 跨平台三维可视化与图形库.VTK图形库.
  • CATIA高效工作指南——常规配置篇(三)
  • SAP在化工行业的数字化转型:无锡哲讯科技的赋能实践
  • 微气象在线监测装置:精准感知环境变化的科技之眼
  • win32相关(句柄表)
  • 【Mini-F5265-OB开发板试用测评】2、关于platform.c中的串口号初始化修改的建议
  • GO语言学习(九)
  • Flask项目打开总是上一个项目的网页
  • 短视频与直播场景下的美颜SDK优化方案:滤镜与特效如何平衡性能与美感?
  • 精益数据分析(80/126):病毒式传播系数实战计算与增长策略优化
  • 中电金信X中远海科推出“银航宝”解决方案,共绘航运金融新图景
  • Python Scikit-Learn核心流程
  • Vue3中的TSX:用函数式思维构建现代组件的实践指南