想知道是否有可能完全摆脱SQL依赖。假设我正在编写与DB通信的测试,这引入了管理数据库模式的需要,这非常麻烦,因为内存数据库通常与生产类型的数据库不匹配。
是否可以使用Hibernate / JPA测试并且没有下划线的DB Schema?
我知道目前为止有两个选项,我想在此扩大我的知识,如果还有其他可能性,请分享。
或者我应该专注于嘲笑DAO层而不是浪费时间吗?完整性检查JPA实体与DB是完全不同的故事。
答案 0 :(得分:2)
您是否担心内存数据库和生产数据库之间存在差异?但是你不要害怕你们两个人之间更大的差异" mock"选择和生产?
从我的观点来看,任何替换生产数据库进行测试都会以某种方式产生误报。我猜想内存数据库会最好地模仿真实环境。特别是如果你使用类似H2的东西试图支持不同的SQL方言。
只要你只编写小的封装单元测试,你的DAO层的模拟也可能有所帮助。但是,只要您编写集成测试,就需要以某种方式提供数据库。
没有 - 没有数据库架构或连接,Hibernate无法正常工作。