0


Spring——单元测试

单元测试:JUnit

在之前的测试方法中,几乎都能看到以下的两行代码:

  1. ApplicationContext context = new ClassPathXmlApplicationContext("xxx.xml");
  2. Xxxx xxx = context.getBean(Xxxx.class);

这两行代码的作用是创建Spring容器,最终获取到对象,但是每次测试都需要重复编写。针对上述问题,我们需要的是程序能自动帮我们创建容器。我们都知道JUnit无法知晓我们是否使用了 Spring 框架,更不用说帮我们创建 Spring 容器了。Spring提供了一个运行器,可以读取配置文件(或注解)来创建容器。我们只需要告诉它配置文件位置就可以了。这样一来,我们通过Spring整合JUnit可以使程序创建spring容器了

整合JUnit5

搭建子模块

搭建spring-junit模块

引入依赖

  1. <!--spring 整合junit相关依赖-->
  2. <dependency>
  3. <groupId>org.springframework</groupId>
  4. <artifactId>spring-test</artifactId>
  5. <version>6.1.14</version>
  6. </dependency>
  7. <!--junit5测试-->
  8. <dependency>
  9. <groupId>org.junit.jupiter</groupId>
  10. <artifactId>junit-jupiter-api</artifactId>
  11. <version>5.10.5</version>
  12. </dependency>

添加配置文件

bean.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
  6. <context:component-scan base-package="com.ling.spring6.junit"/>
  7. </beans>

添加java类

  1. package com.ling.spring6.junit.junit5;
  2. import org.springframework.stereotype.Component;
  3. @Component
  4. public class User {
  5. public void run(){
  6. System.out.println("User....");
  7. }
  8. }

测试

  1. package com.ling.spring6.junit.junit5;
  2. import org.junit.jupiter.api.Test;
  3. import org.junit.jupiter.api.extension.ExtendWith;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.test.context.ContextConfiguration;
  6. import org.springframework.test.context.junit.jupiter.SpringExtension;
  7. import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
  8. //方式一:
  9. //@ExtendWith(SpringExtension.class)
  10. //@ContextConfiguration("classpath:bean.xml")
  11. // 方式二:
  12. @SpringJUnitConfig(locations = "classpath:bean.xml")
  13. public class SpringTestJunit5 {
  14. // 注入
  15. @Autowired
  16. private User user;
  17. // 测试方法
  18. @Test
  19. public void testUser(){
  20. System.out.println(user);
  21. user.run();
  22. }
  23. }

整合JUnit4

JUnit4在公司也会经常用到,在此也学习一下

添加依赖

  1. <!--junit4测试-->
  2. <dependency>
  3. <groupId>junit</groupId>
  4. <artifactId>junit</artifactId>
  5. <version>4.13.2</version>
  6. </dependency>

测试

  1. package com.ling.spring6.junit.junit4;
  2. import com.ling.spring6.junit.junit5.User;
  3. import org.junit.Test;
  4. import org.junit.runner.RunWith;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.test.context.ContextConfiguration;
  7. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  8. @RunWith(SpringJUnit4ClassRunner.class)
  9. @ContextConfiguration(locations = "classpath:bean.xml")
  10. public class SpringTestJunit4 {
  11. @Autowired
  12. private User user;
  13. @Test
  14. public void testUser(){
  15. System.out.println(user);
  16. user.run();
  17. }
  18. }

本文转载自: https://blog.csdn.net/Ling_suu/article/details/143767039
版权归原作者 Ling_suu 所有, 如有侵权,请联系我们删除。

“Spring——单元测试”的评论:

还没有评论