java 单元测试,求教。 或者有其他更好的适用于 java 单测的数据库推荐吗
![]() |
1
SethShi 23 小时 45 分钟前
1. 使用 SQLite 内存驱动
2. 启动一个 MySQL dev container 来测试 3. PostgreSQL 可以 |
![]() |
2
shiny 23 小时 37 分钟前 via iPhone
了解下 pglite
|
3
iseki 13 小时 49 分钟前 via Android
可以放弃在单测中测试数据库……这真的没有必要。至于 H2 ,H2 虽然说自己兼容 PostgreSQL 但实测还是有很多问题,读了下代码,发现架构不一样,不太好修。
|
![]() |
4
liyafe1997 13 小时 29 分钟前
我的单元测试环境是 docker-compose 直接在 tmpfs 中启动一个 PostgreSQL 实例,效果挺好的
|
![]() |
5
liyafe1997 13 小时 27 分钟前
供你参考:
services: test-db: image: postgres:15 container_name: test-db-postgres environment: - POSTGRES_USER=admin - POSTGRES_PASSWORD=password - POSTGRES_DB=postgres tmpfs: - /var/lib/postgresql/data networks: - test-network |
![]() |
6
carrotliang 13 小时 19 分钟前
从不单元测试
|
![]() |
7
powersee 13 小时 6 分钟前 via iPhone
关键词:java Testcontainer junit
|
8
dddd1919 13 小时 0 分钟前
没看懂你的问题,是单测用 H2 替换 mysql 兼容性差,想要用 PG 做单测?那 PG 和 mysql 兼容性也很差啊,自用 H2 在单测替代 mysql 倒没遇到问题
|
![]() |
9
dragondove 12 小时 54 分钟前
你真要的话有 Embedded Postgres ,可以当作测试依赖使用。不过我建议对于数据库直接 mock 使用
|
![]() |
10
Vaspike 12 小时 47 分钟前
pg 和 mysql 的语法也是有差别的, pg 的 group by 是很严格的
|
11
kur0d3s 10 小时 38 分钟前
|
![]() |
12
Ketteiron 9 小时 47 分钟前
对 orm 单测是应该的,数据库单测是做什么,不应该在集成测试里做吗。
|
13
suiterchik 7 小时 37 分钟前
如果你不想引入 docker ,那么可以考虑 MariaDB4j ,这个就是嵌入式 mariaDB ,专用于单元测试;
如果你允许使用 docker (比如你是在 github action 等持续集成环境下),那么你可以直接添加一个 maria 容器;或者使用前面楼提到的 testcontainers |