← FC Coder · HomePhase 04 · Lesson 52 · 60 min
Lesson52
Phase Four · Game · Matchday 52 · Test Time

单元测试 baby
vitest · 纯函数最爱测

Today's 3 Jobs · 今天这三件事
  1. 01
    装 vitest + test script
    父亲已装
  2. 02
    lib/game.test.ts + chemistry.test.ts
    describe/it/expect
  3. 03
    🌟 pnpm test 看绿色 ✓
    改坏看红色

22/25/47/50 课写的纯函数都没测过。今天加 vitest + 10 个 test。纯函数 = 最低成本测试入门。改坏 → 红色 → 改回 → 绿色。早发现胜晚发现。

Concept

vitest 基础

describe/it/expect
pnpm test // vitest 找 *.test.ts 跑
describe
describe('collides', () => ...)
it
it('两个不交 = false', () => ...)
expect
expect(result).toBe(false)
Half 2

装 · 写 · 跑 · 改坏 · AI

01装包 + script
01Min

Cursor + pnpm dev

老三件套。父亲提前 pnpm i -D vitest。
02Min

package.json: scripts.test = vitest

加一行。
02写 5+5 个 case
03Min

lib/game.test.ts · 测 collides 5 个 case

describe/it/expect。不交 = false · 重叠 = true · 等边 · 等。
04Min

lib/chemistry.test.ts · 全曼城高 · 全异低

expect total >= 100 · expect total === 0。
03跑 + 改坏 + AI
05Min

🌟 pnpm test · 看绿色 ✓

vitest 找所有 .test.ts。
06Min

故意 collides 改 < 为 <= · 跑 test 看红

回滚 · 红变绿。
07Min

AI Pair: moveToward 3 个 test

Cmd+K · 'test moveToward · 朝右 · 朝下 · 已到达'。
08Min

📸 截图绿色 ✓

Phase 4 第 12 张战利品。
讲给爸爸听

3 题

01纯函数为什么好测?Hint ↓

无依赖 · 同输入同输出。25/47/50 课的纯函数都很好测。

02测试是文档吗?Hint ↓

是。看 test 一遍 = 知道函数怎么用。

03改坏代码 → 测变红 — 好事?Hint ↓

是!早发现。CI 也跑 · 防止上线坏代码。

温度计

评分

今天难度Difficulty
0
今天开心Fun
0
Final Whistle · 终场哨

纯函数有测试了 —— 改坏不怕。

8 步没打勾。