2016-03-10 27 views
0

在Spring项目上回滚数据库更改所以我有一个使用Hibernate作为ORM的Spring项目,不幸的是它绑定到JUnit 3.8(以支持旧的JSFUnit框架)。如何使用Hibernate,JUnit 3.8和DbUnit

作为单元测试的一部分,我希望访问数据库逻辑,同时保持测试数据库在运行结束时保持不变。

我认为DbUnit会很有用,我正在寻找一个集成所有这些技术的工作示例,从而为每个JUnit方法刷新测试数据。

我非常感谢这方面的任何帮助,特别是因为我已经花了很多时间查看运行在JUnit 4(而不是3.8)上的示例。谢谢 !

编辑:我认为使用类AbstractJUnit38SpringContextTests由Spring是要走的路,因为它是JUnit的3.8所做的最新的类来帮助我们在这种情况下。

+0

据我所知,如果你使用@Transactional和Spring的JUnit亚军,春季应自动识别,它在测试模式和回滚事务... –

+0

是的,但据我了解,Spring JUnit Runner适用于JUnit 4,而我依赖于JUnit 3.8。 –

+0

啊,是的,我的坏。从来没有需要那里的春天抽象类,但据文件说,这似乎是要走的路... –

回答

0

我们在Spring Framework 4.0中放弃了对JUnit 3.8的支持。

但是,如果您仍在使用Spring 3.2.x,则可以从AbstractTransactionalJUnit38SpringContextTests基类继承。

由于您使用的是DbUnit,因此您可能还对第三方DbUnitTestExecutionListener感兴趣。

问候,

山姆(Spring的TestContext框架的作者)

+0

谢谢。我只需要一种方法来改变Spring Context文件的位置。不幸的是,我的测试用例已经扩展了ServletTestCase(Apache Cactus的)类,它与JSFUnit协同工作,在eclipse中运行的Tomcat上运行我的测试用例。因此,我不能扩展第二个类(例如AbstractTransactionalDataSourceSpringContextTests,这可能允许我通过重写名为'getConfigLocations'的方法来更改上下文)。很高兴我得到你的关注:) –