繁体   English   中英

交易经理进行测试

[英]Transaction manager for tests

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

在测试中,我在测试中调用一个动作,该动作启动事务并完成一些工作。 作为测试的一部分,我想对数据库已完成的工作进行断言,但我不想提交事务-我想回滚它。

我可以想到的一种方法是重写事务管理器,使commit方法不执行任何操作,并在测试结束时调用回滚。

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

我认为这一定是已经解决过的问题-重新发明轮子没有意义,所以我做对了吗?

如果重要的话,我正在使用Hibernate而不是Spring。

使您的测试类具有事务性,并在测试后方法中进行回滚。 您可以在一个抽象的超类中做到这一点。 因此,您不必在每个集成测试类中都这样做。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM