全书目录

基础设施与运营系统

第十五章:测试 —— 城市验收、消防和演练

2 分钟 486 字 第 15 / 962 个阅读单元

这一章里,把测试看成“验收、消防和演练”。建筑图画得再美,不经过演练,真出事时照样会塌。

#单元测试

  • Jest
  • Vitest
  • Pytest
  • JUnit

它们解决的是:一个零件单独拿出来,工作对不对。

ts
import { describe, it, expect } from 'vitest';

describe('sum', () => {
  it('adds numbers', () => {
    expect(1 + 2).toBe(3);
  });
});

其中常见分工是:

  • Jest:Node / React 老牌默认测试网
  • Vitest:Vite-native 的现代前端测试
  • Pytest:Python 事实标准
  • JUnit:JVM 世界标准测试框架

#端到端测试

  • Playwright
  • Cypress

它们解决的是:整条业务流程,从用户点击到结果出现,通不通。

ts
import { test, expect } from '@playwright/test';

test('homepage', async ({ page }) => {
  await page.goto('http://localhost:3000');
  await expect(page.locator('h1')).toBeVisible();
});

Playwright 更像城市交管总控台:

  • 跨浏览器
  • 隔离强
  • 多项目矩阵强

Cypress 更像贴着前端现场飞的巡逻机:

  • 调试体验强
  • 前端开发者上手快
  • 组件测试也好用

测试层次关系

text
单元测试:检查一个零件
集成测试:检查几块零件接起来
E2E 测试:检查整条办事流程

最实用的判断

你要验证什么 更该用什么
函数、类、slice、service Jest / Vitest / Pytest / JUnit
数据库、消息队列、HTTP 服务接起来后是否能跑 集成测试
用户登录、下单、支付、权限流 Playwright / Cypress