使用新的Spring Context启动JUnit测试

时间:2016-02-04 20:44:12

标签: 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();
  }
}

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

您还可以在测试后使用Mockito.reset()。 这样可以节省Spring上下文的加载时间。