Java 用于测试的事务管理器
我有一个简单的事务管理器实现,我想知道如何最好地处理我的端到端集成测试 在我的测试中,我在我的测试中调用一个操作,该操作启动一个事务并执行一些工作。作为测试的一部分,我想对数据库的工作做一些断言,但我不想提交事务——我想回滚它 我认为实现这一点的一种方法是重写事务管理器,让commit方法什么都不做,并在测试结束时调用rollback 这种方法涉及的一个问题是缓存,如何确保每个操作都会导致数据库调用,而不是使用任何缓存 我想这一定是以前已经回答过的问题——没有必要重新发明轮子,那么我做的对吗Java 用于测试的事务管理器,java,hibernate,transactions,Java,Hibernate,Transactions,我有一个简单的事务管理器实现,我想知道如何最好地处理我的端到端集成测试 在我的测试中,我在我的测试中调用一个操作,该操作启动一个事务并执行一些工作。作为测试的一部分,我想对数据库的工作做一些断言,但我不想提交事务——我想回滚它 我认为实现这一点的一种方法是重写事务管理器,让commit方法什么都不做,并在测试结束时调用rollback 这种方法涉及的一个问题是缓存,如何确保每个操作都会导致数据库调用,而不是使用任何缓存 我想这一定是以前已经回答过的问题——没有必要重新发明轮子,那么我做的对吗 如
如果重要的话,我使用的是Hibernate而不是Spring。使您的测试类具有事务性,并在测试后方法中执行回滚。 可以在抽象的超类中实现这一点。因此,您不必在每个集成测试类中都这样做 您必须决定在测试env时禁用缓存还是使用缓存是一个好主意。使用缓存可能会产生副作用,但您更接近现实。另一方面,您可能需要测试dao层,而不是缓存