11.2.1 单元测试与集成测试 在软件工程的精密齿轮组中,单元测试与集成测试不是两张并列的检查表,而是同一枚硬币的正反两面——一面刻着“确定性”,另一面铸着“协作性”。当你写下 时,单元测试要问: 这个布尔函数,在所有边界输入下是否严格满足其契约?而当你把 、 、 三者组装成一个注册流程时,集成测试则要追问:当 抛出 , 是否真能捕获它、记录日志、并返回 HTTP 400,而不是静默吞掉异常、或抛出 ?这不是理想化的假设,而是每天在 CI 流水线里被千次验证的真实战场。 我们不谈“为什么重要”——那已是行业共识;我们要拆开测试框架的机箱,看清 JUnit 5 的 如何在字节码层面注入 Mock 实例;我们要追踪 Spring Boot Test 的 是如何通过 触发三级上下文刷新;