使用新的Spring Context启动JUnit测试

Vje*_*tje 0 java spring unit-testing spring-test springjunit4classrunner

我用了两个单元测试类JUnit4.它们都可以单独运行,但是一个接一个地运行它们(例如通过mvn测试),第二个测试失败了.

第二次测试失败的原因是第一次测试在第一次测试中修改了一个bean.第二个测试想要使用这个bean的新实例.

单元测试应该为每个单元测试类提供一个新的Context.Spring对上下文缓存有一流的支持,我想禁用它.如何配置为每个单元测试类Spring重新启动新Context的?

我的测试类配置如下:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:a.context.xml")
public class AUnitTest {

  @Test
  public void someTestMethod{
    doSomeFancyStuff();
  }
}
Run Code Online (Sandbox Code Playgroud)

Jér*_*e B 6

您可以@DirtiesContext在测试方法(或测试类)上使用.执行测试后将重新加载Spring ApplicationContext.