用于测试数据库数据的java JUnit测试用例是最新的,并且没有过时
我正在从我的Service
类方法mDataVO.getMarketData()
获取数据库中的数据列表,其中mDataVO
是marketDataVO
的对象,它是用于存储不同类型数据的值对象
在我的getMarketData()
中,我正在制作一个Hibernate Query
从数据库中获取数据。现在,我的目标是在我的单元测试类中对这些数据进行单元测试,并确保我从方法调用中获得正确的数据和返回的数据不过时,并且与数据库中的最新值相同
为此,在我的单元测试类中,我使用了相同的Hibernate Query
,因此我现在获得了相同的数据集。这并不能解决单元测试的目的,因为我只是比较通过在数据库中运行相同查询获得的相同数据。我不确定如何对这个案例进行单元测试
Am I missing out point of unit testing or not seeing any values in my unit test case?
更新 这个问题仍然没有答案。还有什么建议吗
# 1 楼答案
正如您可能猜到的,测试数据库的问题在于数据
我认为解决这个问题的方法是使用一个与生产模式匹配的测试数据库。执行填充数据库、测试数据访问对象,然后删除测试数据库所需的操作
另一种方法是创建您知道应该获取的数据集,将其插入数据库,执行查询并确保查询结果与数据集匹配,然后将整个事务回滚为一个事务。这样,您的测试数据总是最新的,但不会对数据库造成任何损害
测试数据库DAO以进行单元测试。一旦DAO开始工作,您应该在测试服务时模拟DAO。对服务进行单元测试意味着您不再担心DAO。只需确保服务获得证明其正常运行所需的数据