使用新鲜的春季上下文开始JUnit测试



我用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 上下文的加载时间。

最新更新