Spring——单元测试

ops/2024/11/18 0:23:46/

单元测试:JUnit

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

java">ApplicationContext context = new ClassPathXmlApplicationContext("xxx.xml");
Xxxx xxx = context.getBean(Xxxx.class);

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

整合JUnit5

搭建子模块

搭建spring-junit模块

引入依赖

<!--spring 整合junit相关依赖-->
<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>6.1.14</version>
</dependency>
<!--junit5测试-->
<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.10.5</version>
</dependency>

添加配置文件

bean.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="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 https://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="com.ling.spring6.junit"/></beans>

添加java

java">package com.ling.spring6.junit.junit5;import org.springframework.stereotype.Component;@Component
public class User {public void run(){System.out.println("User....");}
}

测试

java">package com.ling.spring6.junit.junit5;import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;//方式一:
//@ExtendWith(SpringExtension.class)
//@ContextConfiguration("classpath:bean.xml")// 方式二:
@SpringJUnitConfig(locations = "classpath:bean.xml")
public class SpringTestJunit5 {// 注入@Autowiredprivate User user;// 测试方法@Testpublic void testUser(){System.out.println(user);user.run();}}

整合JUnit4

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

添加依赖

<!--junit4测试-->
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version>
</dependency>

测试

java">package com.ling.spring6.junit.junit4;import com.ling.spring6.junit.junit5.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:bean.xml")
public class SpringTestJunit4 {@Autowiredprivate User user;@Testpublic void testUser(){System.out.println(user);user.run();}
}

http://www.ppmy.cn/ops/134572.html

相关文章

Docker 部署Nacos 单机部署 MYSQL数据持久化

配置MYSQL 数据库名为&#xff1a;nacos /******************************************/ /* 表名称 config_info */ /******************************************/ CREATE TABLE config_info (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,data_i…

python习题练习

python习题 编写一个简单的工资管理程序系统可以管理以下四类人:工人(worker)、销售员(salesman)、经理(manager)、销售经理(salemanger)所有的员工都具有员工号&#xff0c;工资等属性&#xff0c;有设置姓名&#xff0c;获取姓名&#xff0c;获取员工号&#xff0c;计算工资等…

Spring Boot编程训练系统:性能优化实践

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了编程训练系统的开发全过程。通过分析编程训练系统管理的不足&#xff0c;创建了一个计算机管理编程训练系统的方案。文章介绍了编程训练系统的系统分析部分&…

软件测试项目实战

软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程&#xff0c;其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 在软件投入使用前&#xff0c;要经过一系列的严格测试&#xff0c;才能保证交付质量。 一、引言 1.编写目的 本文档…

python实现十进制转换二进制,tkinter界面

目录 需求 效果 代码实现 代码解释 需求 python实现十进制转换二进制 效果 代码实现 import tkinter as tk from tkinter import messageboxdef convert_to_binary():try:# 获取输入框中的十进制数decimal_number int(entry.get())# 转换为二进制binary_number bin(de…

API架构解说

API&#xff08;应用程序编程接口&#xff0c;Application Programming Interface&#xff09; 是一种定义软件组件之间交互方式的规范。 它允许不同的软件系统之间进行通信和数据交换&#xff0c;而无需了解彼此的内部实现细节。 API 充当了不同软件组件之间的桥梁&#xff…

用WordPress需要学习哪些编程知识

要使用WordPress搭建和管理网站&#xff0c;您需要掌握一些基本的编程知识。以下是一些关键的技能和概念&#xff1a; 基本编程知识 – HTML&#xff1a;用于构建网页的结构。 – CSS&#xff1a;用于设计和布局网页。 – PHP&#xff1a;WordPress是基于PHP的&#xff0c;…

Python版Spark Structured Streaming编程指南

Structured Streaming中文参考指南 一、概述 Structured Streaming是构建在Spark SQL引擎之上的可扩展且容错的流处理引擎。用户可以像处理静态数据的批处理计算一样表达流计算&#xff0c;Spark SQL引擎会持续增量地运行计算&#xff0c;并在流数据不断到达时更新最终结果。…