SpringJUnit4ClassRunner是否为每个Test或Class加载了Context?

时间:2013-02-14 10:10:45

标签: java spring testing

我的问题是某些测试失败了。我认为一个函数会破坏上下文,因此测试失败了。

Spring是为每个测试或每个测试类加载了Context new,还是仅为Test Run加载了一次?

1 个答案:

答案 0 :(得分:7)

开箱即用,没有配置更改Spring应该只为每个测试套件加载一次上下文。

  

默认情况下,一旦加载,就会重用已配置的ApplicationContext   每次测试。因此,每次测试仅产生一次设置成本   套件,以及后续的测试执行要快得多。在这种情况下,   术语测试套件意味着所有测试都在同一个JVM中运行 - 例如,   所有测试都是针对给定项目从Ant,Maven或Gradle构建的   或模块。在不太可能的情况下,测试会破坏应用程序   上下文并需要重新加载 - 例如,通过修改bean   定义或应用程序对象的状态 - TestContext   框架可以配置为重新加载配置和重建   执行下一个测试之前的应用程序上下文。

来源:http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/testing.html#testcontext-ctx-management