Spring TestContext 框架(位于 org.springframework.test.context包中)提供通用的、注解驱动的单元和集成测试支持,与使用的测试框架无关。TestContext 框架也非常重视惯例而不是配置,有合理的默认值,你可以通过基于注解的配置来覆盖。

    除了通用测试基础设施,TestContext 框架还为 JUnit 4、JUnit Jupiter(又称 JUnit 5)和 TestNG 提供明确的支持。对于 JUnit 4 和 TestNG,Spring 提供了抽象的支持类。此外,Spring 为 JUnit 4 提供了自定义的 JUnit Runner 和自定义的 JUnit Rules,为 JUnit Jupiter 提供了自定义的 Extension,让你编写所谓的 POJO 测试类。POJO 测试类不需要扩展特定的类层次结构,比如抽象支持类。

    下面一节概述了 TestContext 框架的内部结构。如果你只对使用该框架感兴趣,而对用你自己的自定义监听器或自定义加载器来扩展它不感兴趣,可以直接去看配置(上下文管理、依赖注入、事务管理)、支持类和注解支持部分。