测试思维——微型断言、AAA、失败→通过→重构
养成编写小型测试的习惯:理解断言、安排–执行–断言,以及失败→通过→重构循环
测试思维——微型断言、AAA、失败→通过→重构 是 CoddyKit 上的免费 JavaScript Academy 课时。 这是第 1 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 JavaScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 JavaScript Academy 课程共包含 3 节课。
为什么要有测试思维
目标:用微小而可靠的测试进行思考。
- 使用小型断言检查结果
- AAA:准备 → 执行 → 断言
- 失败 → 通过 → 重构循环
- 根据行为命名测试

一个微小的断言
一个小型的 assertEqual 会输出通过或失败。这与真正的测试框架所做的事情类似。
// Minimal assertEqual for quick checks
function assertEqual(actual, expected, name) {
if (actual === expected) {
console.log("✅", name);
} else {
console.log("❌", name, "expected:", expected, "got:", actual);
}
}
// Demo check
assertEqual(2 + 3, 5, "adds numbers");

准备–执行–断言
AAA 让测试更易读:准备数据,调用函数,然后检查结果。
// AAA: Arrange → Act → Assert
// Arrange: prepare inputs
function sum(a, b) { return a + b; }
const a = 2;
const b = 4;
// Act: call the function
const result = sum(a, b);
// Assert: compare
assertEqual(result, 6, "sum returns a + b");

失败→通过→重构
先编写一个失败的测试(失败),让它通过(通过),然后清理代码(重构)。
// Red → Green → Refactor with a tiny example
// 1) Red: write a failing test (expect wrong implementation)
function greet(name) { return "Hi " + name; } // simple implementation
// Intentionally failing expectation first (red)
assertEqual(greet("Ayla"), "Hello Ayla", "greet says Hello"); // likely fails
// 2) Green: fix the code to satisfy the test
function greetFixed(name) { return "Hello " + name; }
assertEqual(greetFixed("Ayla"), "Hello Ayla", "greet says Hello (fixed)");
// 3) Refactor: improve code without changing behavior
function greetRefined(name) {
const cleaned = String(name).trim();
return "Hello " + cleaned;
}
assertEqual(greetRefined(" Ayla "), "Hello Ayla", "greet trims input");

以行为为中心的名称
根据函数应该做的事情命名检查:涵盖边界情况和典型情况。
// Clear names describe behavior, not internals
function isAdult(age) { return age >= 18; }
assertEqual(isAdult(18), true, "isAdult returns true at boundary 18");
assertEqual(isAdult(17), false, "isAdult returns false below boundary");

微小而专注的测试
提示:
- 让测试保持微小且专注(每个测试只验证一个想法)。
- 测试正常路径和一个边界情况。
- 优先使用纯函数,以便轻松测试。
- 之后再使用 Jest/Vitest 自动化;先培养测试思维。

AAA 模式测验
快速检查:AAA 模式。

回顾
回顾:使用小型断言,遵循 AAA,并反复进行失败 → 通过 → 重构。从小处开始——对于初学者来说,清晰胜过复杂。

常见问题解答
「测试思维——微型断言、AAA、失败→通过→重构」课时是免费的吗?
是的 — 「测试思维——微型断言、AAA、失败→通过→重构」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 JavaScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 JavaScript Academy 课程共包含 3 节课。
「测试思维——微型断言、AAA、失败→通过→重构」这节课中我会学到什么?
养成编写小型测试的习惯:理解断言、安排–执行–断言,以及失败→通过→重构循环 你通过在浏览器中直接运行的动手代码来练习 JavaScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 JavaScript Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 JavaScript Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 3 节。
「测试思维——微型断言、AAA、失败→通过→重构」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 JavaScript Academy 课中编写并运行代码吗?
能。每节 JavaScript Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 测试思维——微型断言、AAA、失败→通过→重构
- 使用 ESLint 进行代码检查;使用 Prettier 格式化
- 持续集成基础——每次推送都运行代码检查和测试