没有DB的Hibernate / JPA

时间:2015-10-23 05:34:21

标签: java hibernate unit-testing jpa jdbc

想知道是否有可能完全摆脱SQL依赖。假设我正在编写与DB通信的测试,这引入了管理数据库模式的需要,这非常麻烦,因为内存数据库通常与生产类型的数据库不匹配。

是否可以使用Hibernate / JPA测试并且没有下划线的DB Schema?

我知道目前为止有两个选项,我想在此扩大我的知识,如果还有其他可能性,请分享。

  1. 模仿hibernate
  2. 使用假JDBC driver
  3. 或者我应该专注于嘲笑DAO层而不是浪费时间吗?完整性检查JPA实体与DB是完全不同的故事。

1 个答案:

答案 0 :(得分:2)

您是否担心内存数据库和生产数据库之间存在差异?但是你不要害怕你们两个人之间更大的差异" mock"选择和生产?

从我的观点来看,任何替换生产数据库进行测试都会以某种方式产生误报。我猜想内存数据库会最好地模仿真实环境。特别是如果你使用类似H2的东西试图支持不同的SQL方言。

只要你只编写小的封装单元测试,你的DAO层的模拟也可能有所帮助。但是,只要您编写集成测试,就需要以某种方式提供数据库。

没有 - 没有数据库架构或连接,Hibernate无法正常工作。