我使用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();
}
}
答案 0 :(得分:6)
您可以在测试方法(或测试类)上使用@DirtiesContext
。执行测试后将重新加载Spring ApplicationContext。
答案 1 :(得分:1)
您还可以在测试后使用Mockito.reset()。 这样可以节省Spring上下文的加载时间。