跳至主要內容
Spring Boot 集成测试:Testcontainers 让测试环境不再痛苦

Spring Boot 集成测试:Testcontainers 让测试环境不再痛苦

"在我的机器上能跑" —— 这句话终结者。用 Testcontainers 让集成测试环境与生产保持一致。

1. 集成测试 vs 单元测试

1.1 两者的定位

单元测试(Unit Test)
├── 测试范围:单个类/方法
├── 依赖处理:Mock 所有外部依赖
├── 执行速度:毫秒级
├── 目的:验证代码逻辑正确性
└── 类比:测试一个齿轮是否能正常运转

集成测试(Integration Test)
├── 测试范围:多个组件协作
├── 依赖处理:使用真实的数据库、消息队列等
├── 执行速度:秒级
├── 目的:验证组件间交互正确性
└── 类比:测试齿轮组装后整台机器能否运转

郑天祺大约 10 分钟测试测试TestcontainersUnit Test
测试金字塔:如何制定团队的测试策略

测试金字塔:如何制定团队的测试策略

测试不只是写代码,更是团队策略。本文帮你建立科学的测试体系,告别"写了很多测试但 Bug 还是很多"的困境。

1. 测试金字塔模型

1.1 经典测试金字塔

测试金字塔(由 Mike Cohn 提出,后被广泛采用)
                              投入成本
         ╱──────────────╲        高
        ╱     E2E        ╲      /\
       ╱   (端到端测试)   ╲     /  \
      ╱──────────────────╲    /    \
     ╱      集成测试       ╲   /      \
    ╱  (Service/API层)    ╲  /  ROI   \
   ╱────────────────────────╲/   分    \
  ╱      单元测试             ╲   析    \
 ╱   (类/方法级别,Mock依赖)  ╲  线     \
╱──────────────────────────────╲──────────╲
                                   数量

郑天祺大约 14 分钟测试测试团队策略Bug
Java 单元测试实战:JUnit 5 + Mockito 从入门到自信

Java 单元测试实战:JUnit 5 + Mockito 从入门到自信

写好单元测试不光需要工具,更需要思维。本文从 ROI 分析到实战案例,带你全面掌握 Java 单元测试。

1. 为什么要写单元测试——ROI 分析

1.1 不写测试的真实代价

很多团队觉得写测试"浪费时间"。但让我们算一笔账:

场景:一个电商系统的订单金额计算逻辑有 Bug

没有测试:
  开发 → 写代码(2h) → 提交 → 测试发现Bug → 修Bug(30min) → 重新提测(1h) → 通过
  上线 → 用户投诉 → 排查(1h) → 改Bug(1h) → 加急上线(2h)
  总时间:7.5 小时 + 线上事故风险

有测试:
  开发 → 写测试(1h) → 写代码(1h) → 测试通过 → 提交
  上线 → OK
  总时间:2 小时,零线上风险

郑天祺大约 14 分钟测试JUnit测试ROI