CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
代码质量与工程实践/课时/质量与测试
RawBlame
课时目录12 节

代码质量与工程实践

  1. 01代码质量是什么
  2. 02代码审查
  3. 03重构基础
  4. 04代码坏味道
  5. 05文档生成
  6. 06风格与规范
  7. 07Pull Request 流程
  8. 08质量与测试
  9. 09静态分析工具
  10. 10技术债务
  11. 11团队规范
  12. 12综合练习

质量与测试

测试金字塔;对照 testing-essentials。

30 分钟

质量与测试

代码质量与测试 互为前提:可测的设计通常更清晰;充分的测试让重构与 Review 敢下手。本课对照 testing-essentials 的 测试金字塔,说明质量门禁里每一层测什么。

学习目标

  • 用测试金字塔解释单元 / 集成 / E2E 的分工
  • 将「质量习惯」映射到 CI 与 PR 要求
  • 知道 Java 栈细节在 spring-boot-essentials

测试金字塔(复习)

        E2E(少)
      集成(中)
    单元(多)
层守护的质量失败说明
单元纯逻辑、边界哪个函数错
集成DB、HTTP、配置组件协作错
E2E用户路径端到端回归

快测多写、慢测守命门。只堆 E2E 会导致 CI 慢且 flaky,见 testing-essentials 反模式节。

质量与测试的衔接

  • 重构前 → 先绿测或 characterization test(cq-refactoring)
  • Review 时 → 新行为必须有断言(cq-reviews)
  • PR 合并 → CI 跑 mvn verify / npm test(git-essentials + Actions)

CodeRoadMap backend 的 *ServiceTest 是单元层主力;补 MockMvc 或 Testcontainers 即集成层。

测什么算「有质量」

好测试特征:

  1. 命名说行为:shouldRejectEmptySlug
  2. Arrange-Act-Assert 清晰
  3. 失败信息可读:不用 assertTrue(true)

坏测试:只覆盖 happy path;Mock everything 导致「测的是 Mock」;为覆盖率数字而写。

AI 生成测试常漏边界与 negative case,人工补全见 ai-coding-essentials。

练习

  • 打开 backend src/test/java,找一个测试,评价它属于金字塔哪一层
  • 为你准备改的一个方法,先写 失败 的测试再实现(TDD -lite)
  • 在 PR 模板里加一条「新增/变更行为对应的测试类名」

小结

质量靠设计,信心靠测试;金字塔 + CI 是日常纪律。 下一课静态分析工具:在运行测试之外自动扫 smell 与 bug 模式。

加载本节练习…
← 上一课Pull Request 流程下一课 →静态分析工具