2016-03-06 125 views
0

我有一个简单的事务管理器实现,我想知道如何最好地处理我的端到端集成测试。交易经理的测试

在我的测试中,我调用了一个在我的测试中启动事务并执行一些工作的动作。作为我的测试的一部分,我想做一些关于数据库工作的断言,但我不想提交事务 - 我想将其恢复。

我能想到的一种方法是重写事务管理器,并使commit方法不做任何事情,并在测试结束时调用回滚。

这种方法关注我的一件事是涉及的缓存,我如何确保每个操作导致数据库调用而不是使用任何缓存?

我认为这一定是以前已经回答的问题 - 没有重新发明轮子的意义,所以我在做正确的事情吗?

如果它很重要,我使用Hibernate和不使用Spring。

回答

0

使测试类成为事务性并在后测方法中执行回滚。 你可以在抽象超类中做到这一点。所以你不必在每个集成测试课上都这么做。

您必须决定在测试env中禁用缓存还是使用缓存是一个好主意。使用缓存可能有副作用,但您更接近现实。另一方面,您可能想要测试dao层而不是缓存。