首页 > 解决方案 > Hibernate:测试道

问题描述

我的项目是一个具有核心 java 和 hibernate 的遗留项目。这里没有编写单元测试。在这种情况下测试的最佳策略是什么?

PS如果我使用mockito,那么我将无法测试我的查询,所以我不想使用任何Mock测试框架(例如Mockito、EasyMock、PowerMock)等。我可以编写junits,但它们将再次击中我真正的db.I已考虑在内存数据库中使用。

标签: javahibernateunit-testingtesting

解决方案


使用内存数据库编写数据库测试是一种常见的方法(尽管它们被认为是集成测试)。但是您需要考虑一些优点和缺点:

优点

你不应该考虑清理。

您可以以任何您需要的方式设置数据库。

处理这样的工作环境很容易。你不需要安装任何额外的东西。

缺点

您用于测试的数据库是不同的。

交易可能无法进行。

DB 对象可能不起作用。

某些 sql 结构可能不起作用。

因此,考虑到所有缺点,我建议使用安装了 DB 的docker容器。每次您将拥有干净的数据库时,您都不应该关心数据清理,而且这将与您在 prod 中的数据库完全相同。


推荐阅读