我在setup()方法中加载了一些测试数据。 也就是说,我希望这个测试数据能够设置一次,并且可用于该类中的所有测试。
但是,使用@Test和@Rollback(true)注释的事务测试方法也会导致setup方法回滚..
有没有办法确保只有测试方法回滚而不是设置? 注意: - 不能使用@BeforeClass,因为我需要访问spring上下文中的Autowired bean,如果它被注释为@BeforeClass,则在setup()的静态上下文中不可用。
谢谢, 谢卡尔
PS:在stackoverflow中提出了类似的问题,但从未回答: - @Rollback(false) not working on @Before using SpringJUnit4ClassRunner
答案 0 :(得分:1)
使用@TestExecutionListener
代替@BeforeClass
。这样,您的测试上下文将在执行之前加载。此外,设置代码是外部化的,可以重复用于其他测试。
可以在此处找到更多信息:What is the difference between @BeforeClass and Spring @TestExecutionListener beforeTestClass()