构建与工具
单元测试(unit test)
单元测试(unit test)是一小段代码,它唯一的任务,就是检查你真正的代码里某一小块有没有按预期工作。你喂给它一个已知的输入,说明你期待得到什么答案,一旦现实和期待对不上,测试就会喊出来。这里的「单元」(unit)指的是能单独拿来测的最小的合理单位——通常就是一个函数。
每个单元测试都简单得不行:「我把 2 和 3 相加,我期待得到 5。」单看一个,简直简单到不值得专门去写。它的回报,来自你有几百个这样的测试、并能在几秒内把它们整批跑完。改动一行代码,跑一遍测试,它们立刻告诉你:你是不是悄悄把三个文件之外的某个东西弄坏了。
这才是它真正的礼物——一张安全网。没有测试时,每次改动都是一场小赌博:这会不会弄坏什么?有了测试,你就能放手大胆地改,跑一遍测试套件,然后信任那一排绿色的对勾。它们还是会呼吸的文档:读一个测试,就能清楚看到某段代码本该怎么用。
function add(a, b) { return a + b; }
test("adds two numbers", () => {
expect(add(2, 3)).toBe(5); // pass if add really returns 5
});已知输入、期待答案——哪天 add 不再返回 5,测试就会大声报错。
把它接进 CI/CD 流水线后,每次推送都会自动跑完整套测试——这样一个出错的改动,在别人看到之前就被拦下来了。
又称
另见