如何制作一个jUnit4测试用例类Spring Test案例类?

时间:2011-02-22 22:18:50

标签: hibernate spring junit4

我有一个jUnit4测试用例类(扩展TestCase)。我正在测试一些具有Spring D.I和Hibernate的代码。不知何故,当我执行测试时,看起来一些内部事务正在推动我的测试更改。我正在使用HibernateTemplate删除记录,但没有在数据库中删除任何内容。我建议通过使我的类成为Spring测试类(使用Spring Test Runner)并在方法调用之前使用@Transactional属性来使我的测试用例处理事务。有人可以告诉我如何才能使我的Junit4测试类Spring测试类?我需要哪些配置以及要扩展哪个类?

提前致谢。

3 个答案:

答案 0 :(得分:3)

扩展AbstractTransactionalJUnit4SpringContextTests或将这些注释添加到测试类中:

@TestExecutionListeners(TransactionalTestExecutionListener.class)
@Transactional
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners( { DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class })

答案 1 :(得分:0)

扩展AbstractJUnit4SpringContextTests。我强烈建议您详细阅读Testing章节。

答案 2 :(得分:0)

有关Spring测试的所有内容都在参考documentation中进行了详细解释。

您遇到的现象是,当test-case类使用@Transactional注释时,Spring会自动将测试方法包装在仅回滚事务中。这有一定的好处:在测试期间不会损坏您的数据库,并且每个测试都在相同的数据上工作,因此您不会引入测试间依赖性。

相关问题