《Spring Boot 入门》17.3 集成测试
集成测试启动完整 Spring 容器,验证跨层协作。本节讲清 @SpringBootTest 的 webEnvironment 四个取值、4.x 下 TestRestTemplate 需显式开启、上下文缓存与 @DirtiesContext、测试数据隔离的三种策略,并用 Testcontainers 2.0 接入真实数据库,最后给出三层测试的选择速查表。
tag
集成测试启动完整 Spring 容器,验证跨层协作。本节讲清 @SpringBootTest 的 webEnvironment 四个取值、4.x 下 TestRestTemplate 需显式开启、上下文缓存与 @DirtiesContext、测试数据隔离的三种策略,并用 Testcontainers 2.0 接入真实数据库,最后给出三层测试的选择速查表。
系统讲解 Kafka 应用测试策略:测试金字塔中 Kafka 的位置、MockProducer/MockConsumer 单元测试、Embedded Kafka 与 Testcontainers 集成测试对比、Spring Boot @EmbeddedKafka 实战、端到端与契约测试、CI 中的容器编排与性能优化
系统讲解 Testcontainers 集成测试:容器化测试的原理与 Ryuk 资源回收、GenericContainer 与专用模块(数据库/Kafka/Redis)、@Testcontainers 生命周期与单例复用、等待策略、Docker Compose 模块、Spring Boot @ServiceConnection 零配置注入,以及 CI 环境与并行测试实践。
系统讲解 Kafka Streams 测试:TopologyTestDriver 初始化与输入输出通道、事件时间推进与窗口断言、状态存储校验、序列化与 Schema 测试、Testcontainers 容器化端到端集成测试、CI 中的测试策略与常见陷阱
给 TaskHub 搭起分层测试:先划清单元、集成、端到端三层的边界与比例,再用 Testcontainers 在测试里拉起真实的 postgres:17-alpine,用 pgx 建表并跑通一次插入查询;同时给出本机 colima 环境下必须设置 DOCKER_HOST 与 socket override 的真实排错过程,以及用 TestMain 共享容器降本的做法。
讲解如何用 Testcontainers 在 .NET 中编写真实依赖的集成测试,覆盖 PostgreSQL、Redis、Kafka 容器化、与 WebApplicationFactory 组合、夹具与生命周期管理、数据隔离与清理,以及 CI 集成与稳定性调优。
深入讲解数据库测试与 Schema 变更的验证体系:真实数据库测试(Testcontainers)与模拟的权衡、Flyway/Liquibase 迁移测试(空库/升级库/回滚验证)、数据层集成测试(事务/索引/隔离级别)、数据管道测试(dbt test/Great Expectations/ETL 幂等)、数据一致性验证,以及 CI 中数据库测试与生产变更的安全网实践。
系统集成测试深度指南:从测试替身的选择到 Testcontainers 实战,涵盖数据库、Redis、Kafka 集成验证,Spring Boot 测试切片,微服务契约测试与 Pact,以及共享容器性能优化策略。
从测试数据管理问题出发,系统讲解 Object Mother、Builder、Fixture、Mock、Contract Testing 到 Testcontainers 的完整链路,涵盖多语言工厂模式、数据库测试策略和环境隔离方案。
本节解释内嵌 H2 为何会掩盖 PostgreSQL 方言差异,给出 Testcontainers 2.0 在 Spring Boot 4.x 下的依赖坐标、@ServiceConnection 用法与共享容器模式,讲清容器复用、CI 里 Docker 的可用性前提,并附镜像拉取、端口、健康检查三类失败的排查清单。
系统性讲解 Node.js 高级测试策略:测试金字塔、Jest 高级特性、Pact 契约测试、E2E 测试框架选型、API 测试、压力与性能测试、混沌工程、Testcontainers、属性测试、变异测试,以及 CI/CD 中的测试优化实践。
Java 测试金字塔实战:JUnit 5 参数化/嵌套/动态测试、Mockito 模拟与验证、Testcontainers 集成测试、Pact 契约测试与 CI/CD 测试流水线设计