即使您将测试方法(使用@Test)设置为回滚,如何使测试中的设置方法(使用@Before)不回滚?

时间:2015-09-07 15:45:17

标签: java spring junit

我在setup()方法中加载了一些测试数据。 也就是说,我希望这个测试数据能够设置一次,并且可用于该类中的所有测试。

但是,使用@Test和@Rollback(true)注释的事务测试方法也会导致setup方法回滚..

有没有办法确保只有测试方法回滚而不是设置? 注意: - 不能使用@BeforeClass,因为我需要访问spring上下文中的Autowired bean,如果它被注释为@BeforeClass,则在setup()的静态上下文中不可用。

谢谢, 谢卡尔

PS:在stackoverflow中提出了类似的问题,但从未回答: - @Rollback(false) not working on @Before using SpringJUnit4ClassRunner

1 个答案:

答案 0 :(得分:1)

使用@TestExecutionListener代替@BeforeClass。这样,您的测试上下文将在执行之前加载。此外,设置代码是外部化的,可以重复用于其他测试。

可以在此处找到更多信息:What is the difference between @BeforeClass and Spring @TestExecutionListener beforeTestClass()