我是南城余!阿里云开发者平台专家博士证书获得者!
欢迎关注我的博客!一同成长!
一名从事运维开发的worker,记录分享学习。
专注于AI,运维开发,windows Linux 系统领域的分享!
本章节对应知识库
https://www.yuque.com/nanchengcyu/java
本内容来自尚硅谷课程,此处在知识库做了个人理解
————————————————
6、单元测试:JUnit
在之前的测试方法中,几乎都能看到以下的两行代码:
ApplicationContext context =newClassPathXmlApplicationContext("xxx.xml");Xxxx xxx = context.getBean(Xxxx.class);
这两行代码的作用是创建Spring容器,最终获取到对象,但是每次测试都需要重复编写。针对上述问题,我们需要的是程序能自动帮我们创建容器。我们都知道JUnit无法知晓我们是否使用了 Spring 框架,更不用说帮我们创建 Spring 容器了。Spring提供了一个运行器,可以读取配置文件(或注解)来创建容器。我们只需要告诉它配置文件位置就可以了。这样一来,我们通过Spring整合JUnit可以使程序创建spring容器了
6.1、整合JUnit5
6.1.1、搭建子模块
搭建spring-junit模块
6.1.2、引入依赖
<dependencies><!--spring context依赖--><!--当你引入Spring Context依赖之后,表示将Spring的基础依赖引入了--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.2</version></dependency><!--spring对junit的支持相关依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>6.0.2</version></dependency><!--junit5测试--><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.9.0</version></dependency><!--log4j2的依赖--><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.19.0</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j2-impl</artifactId><version>2.19.0</version></dependency></dependencies>
6.1.3、添加配置文件
beans.xml
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><context:component-scanbase-package="com.atguigu.spring6.bean"/></beans>
copy日志文件:log4j2.xml
6.1.4、添加java类
packagecom.atguigu.spring6.bean;importorg.springframework.stereotype.Component;@ComponentpublicclassUser{publicUser(){System.out.println("run user");}}
6.1.5、测试
importcom.atguigu.spring6.bean.User;importorg.junit.jupiter.api.Test;importorg.junit.jupiter.api.extension.ExtendWith;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.test.context.ContextConfiguration;importorg.springframework.test.context.junit.jupiter.SpringExtension;importorg.springframework.test.context.junit.jupiter.SpringJUnitConfig;//两种方式均可//方式一//@ExtendWith(SpringExtension.class)//@ContextConfiguration("classpath:beans.xml")//方式二@SpringJUnitConfig(locations ="classpath:beans.xml")publicclassSpringJUnit5Test{@AutowiredprivateUser user;@TestpublicvoidtestUser(){System.out.println(user);}}
6.2、整合JUnit4
JUnit4在公司也会经常用到,在此也学习一下
6.2.1、添加依赖
<!-- junit测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>
6.2.2、测试
importcom.atguigu.spring6.bean.User;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.test.context.ContextConfiguration;importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:beans.xml")publicclassSpringJUnit4Test{@AutowiredprivateUser user;@TestpublicvoidtestUser(){System.out.println(user);}}
版权归原作者 南城余coding 所有, 如有侵权,请联系我们删除。