





















这是一个创建于 233 天前的主题,其中的信息可能已经有所发展或是发生改变。
java 单元测试,求教。 或者有其他更好的适用于 java 单测的数据库推荐吗
第 1 条附言 · 2025 年 10 月 24 日
说错了各位佬,是想说 MariaDB 。
我写单测确实遇到 h2 的兼容性问题很烦。
比如说 ddl 不兼容,导致建表语句要做修改才能在 h2 中运行。
一些语句中的函数不支持,比如 date_add 之类的。
h2 的驱动和 mysql 驱动表现不一致,导致 sharding jdbc 中报错。
1 SethShi 2025 年 10 月 23 日1. 使用 SQLite 内存驱动 |
2 shiny 2025 年 10 月 23 日 via iPhone了解下 pglite |
3 iseki 2025 年 10 月 24 日 via Android可以放弃在单测中测试数据库……这真的没有必要。至于 H2 ,H2 虽然说自己兼容 PostgreSQL 但实测还是有很多问题,读了下代码,发现架构不一样,不太好修。 |
4 liyafe1997 2025 年 10 月 24 日我的单元测试环境是 docker-compose 直接在 tmpfs 中启动一个 PostgreSQL 实例,效果挺好的 |
5 liyafe1997 2025 年 10 月 24 日供你参考: |
7 powersee 2025 年 10 月 24 日 via iPhone关键词:java Testcontainer junit |
8 dddd1919 2025 年 10 月 24 日没看懂你的问题,是单测用 H2 替换 mysql 兼容性差,想要用 PG 做单测?那 PG 和 mysql 兼容性也很差啊,自用 H2 在单测替代 mysql 倒没遇到问题 |
9 dragondove 2025 年 10 月 24 日你真要的话有 Embedded Postgres ,可以当作测试依赖使用。不过我建议对于数据库直接 mock 使用 |
10 Vaspike 2025 年 10 月 24 日pg 和 mysql 的语法也是有差别的, pg 的 group by 是很严格的 |
12 Ketteiron 2025 年 10 月 24 日对 orm 单测是应该的,数据库单测是做什么,不应该在集成测试里做吗。 |
13 suiterchik 2025 年 10 月 24 日如果你不想引入 docker ,那么可以考虑 MariaDB4j ,这个就是嵌入式 mariaDB ,专用于单元测试; 如果你允许使用 docker (比如你是在 github action 等持续集成环境下),那么你可以直接添加一个 maria 容器;或者使用前面楼提到的 testcontainers |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。