1

我使用JUnit4. 它们都单独运行良好,但一个接一个地运行它们(例如通过 mvn 测试),第二个测试失败。

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

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

我的测试类配置如下:

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

  @Test
  public void someTestMethod{
    doSomeFancyStuff();
  }
}
4

2 回答 2

8

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

于 2016-02-04T20:49:58.370 回答
1

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

于 2020-02-08T11:27:05.667 回答