我用JUnit4
写了两个单元测试类。它们都单独运行良好,但一个接一个地运行它们(例如通过 mvn 测试),第二个测试失败。
第二个测试失败的原因是第一个测试在第一个测试中修改了 Bean。第二个测试想要使用此 Bean 的新实例。
应该为每个单元测试类提供单元测试一个新的上下文。 Spring 对上下文缓存有一流的支持,我想禁用它。如何配置 Spring
以重新启动每个单元测试类的新Context
?
我的测试类配置如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:a.context.xml")
public class AUnitTest {
@Test
public void someTestMethod{
doSomeFancyStuff();
}
}
可以在测试方法(或测试类)上使用@DirtiesContext
。Spring ApplicationContext 将在测试执行后重新加载。
在测试后使用 Mockito.reset()。这将为您节省 Spring 上下文的加载时间。