Spring 提供了专门的模块用来对 Spring 进行测试:

相关注解说明

1、@RunWith():

  • 用于指定 junit 运行环境,是 junit 提供给其他框架测试环境接口扩展
  • 为了便于使用spring的依赖注入,spring提供了 org.springframework.test.context.junit4.SpringJUnit4ClassRunner 作为 Junit 测试环境,例如:@RunWith( SpringJUnit4ClassRunner.class )

2、@ContextConfiguration:Spring 提供的注解,用于导入 Spring 的配置文件

  • classes={ Config.class, … }:用来加载 Spring 配置类
  • locations = { “classpath:springContext.xml” , … }:用来加载 Spring 配置文件

3、@WebAppConfiguration:注解在测试类上,用来指定声明加载 ApplicationContext 是一个 WebApplicationContext,它的属性指定的是 web 资源的位置,默认为 src/main/webapp

4、@Before:在测试前进行的初始化工作

5、@After:在测试后进行的清理工作

依赖引入

引入 junit 和 spring-test 依赖:

  1. <dependencies>
  2. <!-- springMVC环境 -->
  3. <dependency>
  4. <groupId>org.springframework</groupId>
  5. <artifactId>spring-webmvc</artifactId>
  6. <version>5.3.1</version>
  7. </dependency>
  8. <!-- 测试依赖 -->
  9. <dependency>
  10. <groupId>junit</groupId>
  11. <artifactId>junit</artifactId>
  12. <version>4.13.1</version>
  13. <scope>test</scope>
  14. </dependency>
  15. <dependency>
  16. <groupId>org.springframework</groupId>
  17. <artifactId>spring-test</artifactId>
  18. <version>5.3.1</version>
  19. </dependency>
  20. </dependencies>

Spring 项目测试

1、创建配置类 DemoConfig

  1. @Configuration
  2. public class DemoConfig {
  3. }

2、创建测试类

  1. @RunWith(SpringJUnit4ClassRunner.class)
  2. @ContextConfiguration(classes = {DemoConfig.class})
  3. public class DemoConfigTest {
  4. @Autowired
  5. ApplicationContext context;
  6. @Test
  7. public void name() {
  8. System.out.println(context);
  9. }
  10. }

Spring Web 测试