我的项目是一个遗留项目,核心here.What和hibernate.No单元测试都是在java上编写的,在这种情况下,java是测试的最佳策略吗?
附注:如果我使用Mockito,那么我将无法测试我的查询,所以我不想使用任何Mock测试框架(例如mockito,EasyMock,PowerMock)等。我可以编写junit,但它们将再次命中我的真实数据库。我曾考虑在内存数据库中使用。
发布于 2018-11-14 02:58:07
使用内存中的DB编写DB测试是一种常见的方法(尽管它们被认为是集成测试)。但你需要考虑一些利弊:
Pros
你不应该考虑清理。
你可以用任何你需要的方式来设置DB。
处理这样的工作环境是很容易的。你不需要安装任何额外的东西。
Cons
用于测试的DB是不同的。
事务可能无法工作。
DB对象可能无法工作。
某些sql构造可能无法工作。
因此,考虑到所有缺点,我建议使用安装了DB的docker容器。每次你将有干净的数据库,你不应该关心数据清理,而且这将是与你在prod中完全相同的数据库。
https://stackoverflow.com/questions/53287591
复制相似问题