当前位置: 首页 > news >正文

系列六、Spring整合单元测试

一、概述

        Spring中获取bean最常见的方式是通过ClassPathXmlApplicationContext 或者 AnnotationConfigApplicationContext的getBean()方式获取bean,那么在Spring中如何像在SpringBoot中直接一个类上添加个@SpringBootTest注解,即可在类中注入自己想要测试的bean呢?解决方案是有的,spring-test即提供了这个功能。Spring整合单元测试步骤如下:

二、Spring整合Junit单元测试

2.1、整体结构

2.2、pom

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.star</groupId><artifactId>spring5x06-mybatis</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>spring5x06-mybatis</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!--spring基本依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.2.5.RELEASE</version></dependency><!-- 数据源 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.16</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.27</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.11</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.1.0</version></dependency><!-- 普通maven项目中使用Sl4j注解 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.32</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.10</version></dependency><!-- aop --><dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>3.1</version></dependency><dependency><groupId>aopalliance</groupId><artifactId>aopalliance</artifactId><version>1.0</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.19</version></dependency><!-- 工具 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.76</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.3</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.11</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.22</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.1</version></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.1</version></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory></resource></resources></build></project>

2.3、使用

/*** @Author : 一叶浮萍归大海* @Date: 2023/11/23 19:12* @Description: Spring整合单元测试*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class SpringJunitTest {@Resourceprivate UserMapper userMapper;@Resourceprivate UserService userService;@Testpublic void userMapperTest() {List<UserDO> userDOS = userMapper.listAllUser();System.out.println("userMapper = " + userMapper);System.out.println("userDOS = " + userDOS);}@Testpublic void userServiceTest() {List<UserDO> userDOS = userService.listAllUser();System.out.println("userService = " + userService);System.out.println("userDOS = " + userDOS);}}

相关文章:

  • Pycharm创建项目新环境,安装Pytorch
  • java springboot测试类虚拟MVC环境 匹配返回值与预期内容是否相同 (JSON数据格式) 版
  • HCIA题目解析(1)
  • element-vue实现网页锁屏功能
  • webshell之Laravel和yii
  • 2023.11.25更新关于mac开发APP(flutter)的笔记与整理(实机开发一)
  • 关于easy-es的聚合问题
  • AJAX技术-04-- 跨域说明
  • 【nlp】3.3 Transformer论文复现:2. 编码器部分(掩码张量、多头注意力机制、前馈全连接层)
  • 无需API开发,有赞小程序集成广告推广系统,提升品牌曝光
  • 堆和栈的区别 重点来说一下堆和栈;堆与栈之间的联系
  • Mono 8、Mono 10、Mono 10 Packed、Mono 12、Mono 12 Packe等像素格式简介
  • .NET 使用配置文件
  • 通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(三)
  • Elasticsearch:ES|QL 查询中的元数据字段及多值字段
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • Git 使用集
  • java2019面试题北京
  • Python学习之路13-记分
  • vue:响应原理
  • 初识MongoDB分片
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 开源地图数据可视化库——mapnik
  • 全栈开发——Linux
  • 事件委托的小应用
  • 温故知新之javascript面向对象
  • ​卜东波研究员:高观点下的少儿计算思维
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (k8s中)docker netty OOM问题记录
  • (NSDate) 时间 (time )比较
  • (二)WCF的Binding模型
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (一)VirtualBox安装增强功能
  • (译)2019年前端性能优化清单 — 下篇
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)创业家杂志:UCWEB天使第一步
  • . Flume面试题
  • .CSS-hover 的解释
  • .net framework profiles /.net framework 配置
  • .net MySql
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [] 与 [[]], -gt 与 > 的比较
  • [Android]竖直滑动选择器WheelView的实现
  • [autojs]逍遥模拟器和vscode对接
  • [BZOJ] 2044: 三维导弹拦截
  • [C#]手把手教你打造Socket的TCP通讯连接(一)
  • [CQOI 2011]动态逆序对
  • [Go WebSocket] 多房间的聊天室(五)用多个小锁代替大锁,提高效率
  • [IMX6DL] CPU频率调节模式以及降频方法
  • [INSTALL_FAILED_TEST_ONLY],Android开发出现应用未安装