Test-Driven Development Philosophy 核心原则 :测试应该通过 public interfaces 验证行为,而不是验证 implementation details。代码可以完全改变;测试不该因此改变。 好测试 偏 integration-style:它们通过 public APIs 执行真实 code paths。它们描述系统做 什么 ,而不是 怎么做 。好测试读起来像 spec,比如 “user can checkout with valid cart” 清楚说明已有能力。这些测试能经受 refactor,因为它们不关心内部结构。 坏测试 和 implementation 绑定。它们 mock 内部 collaborators、测试 private methods,或通过外部手段验证(例如直接查询 database,而不是使用 interface)。警示信号是:你 refactor 了,行为没变,但测试坏了。如果重命名内部函数导致测试失败,那些测试测的是 implementation,不是 behavior。 示例见 tests.md,mocking 指南见 mocking.md。 Anti-Pattern: Horizontal Slices 不要先写所有测试,再写所有实现。 这是 “horizontal slicing”,把 RED 当成…