☰
test-driven-spring-boot:用 TDD 写出来的 Spring Boot 示例
2026/10/14 19:44:17 网站建设 项目流程

文章目录

  • test-driven-spring-boot:用 TDD 写出来的 Spring Boot 示例
    • 1、 项目解决什么问题
    • 2、 本地怎么跑
    • 3、 Actuator 端点怎么开
    • 4、 Consumer-Driven Contracts 怎么接
    • 5、 Testcontainers 不想跑怎么办
    • 6、 适合什么人看

test-driven-spring-boot:用 TDD 写出来的 Spring Boot 示例

这个项目在 GitHub 上拿到 112 Star 了。

xpinjection 开源的 test-driven-spring-boot 是一个 Spring Boot 云原生应用示例,全程按 TDD 风格编写,用来演示如何在 Spring Boot 项目里落测试驱动开发。仓库不大,但拿到 CI 上的 Maven 构建徽章一直在跑。

1、 项目解决什么问题

写 Spring Boot 的人多,能把 TDD 真正用起来的少。多数项目靠补测试凑覆盖率,先写实现再补用例,测出的东西更像是事后背书。

这个仓库把顺序倒过来。它给人演示一套从需求到用例再到实现的写法:测试先跑红,生产代码补到能过,再回头重构。整个工程结构按这套节奏来。

2、 本地怎么跑

入口是LocalLibraryApplication这个类。作者的说明很直接:跑它就够了。需要的依赖通过 Docker 容器自动拉起,应用连上就能工作。

不用手动拉数据库、不用改配置文件,本地环境一行命令的事。

3、 Actuator 端点怎么开

Spring Boot Actuator 的管理端点默认不暴露。要激活,需要打开 admin profile,并把账号密码通过系统属性传进去:

-Dspring.security.user.name=admin -Dspring.security.user.password=xpinjection -Dspring.profiles.active=dev,admin

没有把账号写死在代码里,而是依赖外部配置传入。这种做法比 property 文件里塞默认值干净些,部署到不同环境直接换系统属性即可。

4、 Consumer-Driven Contracts 怎么接

项目用 Pact 描述并管理 REST API 契约。

仓库里的/pact/docker-compose.yaml能起一个 Pact Broker 加 PostgreSQL 依赖。这个 broker 实例不挂卷,数据重启就清,适合本地验证用。

测试阶段要不要跑 Pact,由pactbroker.enabled系统属性控制。验证结果发不发布到 broker,看pact.verifier.publishResults。

pact.provider.version和pact.provider.branch用来传当前应用版本号和 git 分支,broker 里靠它们跟踪契约的演变过程。

5、 Testcontainers 不想跑怎么办

有些场景本地没 Docker,或者只想快速过一遍构建。作者留了一个开关,把testcontainers.enabled设为false就能跳过依赖 Testcontainers 的测试:

./mvnw verify -Dtestcontainers.enabled=false

6、 适合什么人看

  • 想在 Spring Boot 项目里真正落 TDD,但不知道怎么破题的开发者
  • 在搭契约测试流程、需要一份能跑的 Pact 集成样例的人
  • 给团队做培训、要找一个干净小工程当样例讲清楚的人

在搭契约测试流程、需要一份能跑的 Pact 集成样例的人

  • 给团队做培训、要找一个干净小工程当样例讲清楚的人

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询