积分中心
Testcontainers:让 Java 集成测试接近真实依赖
头像 ccai 2026-09-24 16:36:18    发布
0 浏览 0 点赞 0 收藏

只使用 Mock 测试,无法发现 SQL、索引和数据库版本差异。Testcontainers 可以在测试时启动真实数据库容器。

测试类可以准备独立数据库:

@Testcontainers
@SpringBootTest
class TaskRepositoryTest {
    @Container
    static PostgreSQLContainer<?> postgres =
            new PostgreSQLContainer<>("postgres:16");
}

测试结束后容器自动清理。实际项目中需要固定镜像版本,避免每次测试使用不同数据库行为。

适合覆盖:

  • 事务回滚;
  • 唯一索引;
  • 时间字段;
  • 分页查询;
  • 数据库迁移;
  • 并发更新。

集成测试运行速度可能比单元测试慢,因此可以在合并前和夜间任务中分层执行。


©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
IDE
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除

京ICP备:2022009079号-2

京公网安备:11010502051901号

ICP证:京B2-20230255