当前位置: 首页 > 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)
})
 

相关文章:

  • 开发指南118-背景渐变特效
  • 三步快速部署一个本地Windows/Linux大语言模型ChatGLM(环境配置+权重下载+运行)
  • Spring Boot集成Resilience4j实现微服务容错机制
  • 深入探索 CSS 中的伪类:从基础到实战​
  • 分享|16个含源码和数据集的计算机视觉实战项目
  • 聚铭安全管家平台2.0重磅发布——大模型智驱高效降本新方向
  • 可视化大屏全屏后重载echarts图表
  • 架空线路监控系统是针对高压架空输电线路设计的一种安全监测解决方案
  • 【Linux cmd】查看 CPU 使用率的几个命令
  • 【安装指南】Canal 环境的安装与使用
  • 前端测试简介
  • Day34打卡 @浙大疏锦行
  • 【C/C++】胜者树与败者树:多路归并排序的利器
  • 【实证分析】地市金融科技指数测算数据集-含代码及文献(2011-2024年)
  • @Configuration 与 @Component 的区别
  • 数字孪生和3D可视化有什么区别?一文解析核心差异
  • 5.24 note
  • C++ 日志系统实战第六步:性能测试
  • 安全生态与职业跃迁
  • 数学建模day01
  • 设计师一般放作品的网站/大数据培训机构排名前十
  • 东莞做网站seo/微信引流主动被加软件
  • 旅游网站的网页设计素材/网络推广和网站推广
  • 淮南今日头条新闻/河南平价的seo整站优化定制
  • 北京个人做网站/百度小程序优化排名
  • 苹果装饰网站开发案例/抖音推广引流平台