← FC Coder · HomePhase 04 · Lesson 52 · 60 min
Lesson52
Phase Four · Game · Matchday 52 · Test Time
单元测试 baby
vitest · 纯函数最爱测
Today's 3 Jobs · 今天这三件事
- 01装 vitest + test script父亲已装
- 02lib/game.test.ts + chemistry.test.tsdescribe/it/expect
- 03🌟 pnpm test 看绿色 ✓改坏看红色
22/25/47/50 课写的纯函数都没测过。今天加 vitest + 10 个 test。纯函数 = 最低成本测试入门。改坏 → 红色 → 改回 → 绿色。早发现胜晚发现。
Concept
vitest 基础
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