Emi*_*l H 7 java tdd unit-testing jdbc
在过去的几年里,我一直在努力研究单元测试数据库代码以及随之而来的所有痛苦.我发现这个现有的帖子我发现很有启发性:
接受的答案的作者建议,模拟整个数据库层以验证生成的SQL可能很有用.几个月前,当我第一次阅读答案时,我没有想太多,但最近我发现了SQL生成错误,错误分配字段等导致的一些错误.我确实意识到JDBC相当臃肿并且容易出错,但是在这一点上切换到不同的东西不是一种选择.
有问题的应用程序是数据源的批处理器,直接使用JDBC而不是ORM.除了实际的实现之外,所有JDBC代码都被分成不同的DAO对象,其中每个对象都有自己的接口和存根.这使我能够实现业务层的良好测试覆盖率,但数据库层的测试几乎不存在.
是否存在JDBC(java.sql)接口的现有存根实现,可以将其注入DAO类并用于验证生成的SQL并可能发回一些预编程的结果?