Maven数据库层模块中的单元测试和集成测试分界

| 我认为在要编写的测试类型上我一直犯同样的错误。 我们的应用程序中有不同的Maven模块,有一个名为``0''的模块,其中包含所有pojos,dao,所有休眠的东西。它仅执行CRUD操作,并且不知道其他所有模块。 在编写完DAO之后,我感觉好像要进行一个测试,以证明对象已被持久化和删除等。实际上,从我到目前为止所读的内容来看,这实际上是一个集成测试。 就CRUD操作而言,对其他对象也使用模拟进行单元测试对我来说是没有意义的。 现在,在测试该模块时,我采取了不同的立场。 这里的最佳做法是什么?在适当的项目中做了什么? 谢谢阅读     
已邀请:
        我可以想到几种方法。 一种就是坚持自己一直在做的事情,无论是所谓的集成还是单元测试。通常,这种类型的模块几乎没有要测试的业务逻辑,因此CRUD操作是唯一可测试的事情。如果您具有易于访问的数据库并设计测试以自行清理,那就太好了。更好的是,如果您有可以在测试开始之前转储的数据库。 许多地方使用的其他方法,是在内存数据库中进行测试(例如Hypersonic)。但是,由于您使用不同的数据库,因此无法完全测试所构建的产品。但是,它将验证您的Hibernate映射和查询(不是特定于目标数据库的),这也许是模块中最重要的可测试方面。     

要回复问题请先登录注册