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

SpringBoot 集成Junit单元测试

学习文章: https://www.cnblogs.com/ysocean/p/6889906.html

开发工具: IDEA 2022.1.4

目录

目录

1. 概述

 2. 实现步骤

        2.1 maven导入依赖

         2.2 随意代码演示(不推荐)

        2.3 规范代码演示(推荐)

3. Junit相关其他注解

4. 注意事项

5. 结语


1. 概述

        接触到Junit,应该是看别人Java代码有一个@Test注解开始。就百度了解下,从英文名看,是“测试”的意思。那么Java方法加入了注解@Test,则说明该方法可直接运行。

        之前写类,如果要测试的话,就在main()方法测试,如果该类方法过多,都写在main的话,要不停的去注释代码,写新的测试代码。那么使用Junit的话,则简便很多,直接加入@Test注解即可。

        观察效果,加入了注解后,方法行前面会有绿色的图标,点击图标,分别点击test()方法和main()方法,显示如下:

 

        也就说,这个test()方法是可以直接运行了。

        需要注意的是,加入@Test注解的方法,声明必须是public void并且无参

 2. 实现步骤

        2.1 maven导入依赖

        <!-- 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>

         2.2 随意代码演示(不推荐)

        我在工具类中加入了main()和test()方法,用来测试getToken()方法,均可实现,但实际中不这么写,看自己随意。

public class JwtUtils {public static String SECRET= "1c2h3e4n5w6e7i8x9i0n";public static String getToken(Map<String, String> map){JWTCreator.Builder builder= JWT.create();map.forEach((k,v)->{builder.withClaim(k,v);});Calendar instance= Calendar.getInstance();instance.add(Calendar.HOUR, 2);  //默认2小时过期builder.withExpiresAt(instance.getTime());String token= builder.sign(Algorithm.HMAC256(SECRET));return token;}public static DecodedJWT verfy(String token){DecodedJWT decodedJWT= JWT.require(Algorithm.HMAC256(SECRET)).build().verify(token);return decodedJWT;}@Testpublic void test() {Map<String,String> map=new HashMap<>();map.put("username", "1107230602");map.put("password", "0246813579");String token= JwtUtils.getToken(map);System.out.print(token);}public static void main(String[] args) {Map<String,String> map=new HashMap<>();map.put("username", "1107230602");map.put("password", "0246813579");String token= JwtUtils.getToken(map);System.out.print(token);}
}

        2.3 规范代码演示(推荐)

在工程test目录下,如下路径,并创建测试类,一般以被测试目标类名+Test:

         此处注意,在类名那里,也有一个绿色图标,运行这个图标,则是把整个测试类的所有@Test方法都执行,只有点击方法那里的绿色图标,才是执行指定方法。

3. Junit相关其他注解

        以下代码源自: "https://www.cnblogs.com/ysocean/p/6889906.html" :

        通过以下代码,可以理清Junit相关注解的搭配使用.

public class JunitTest {public JunitTest() {System.out.println("构造函数");}@BeforeClasspublic static void beforeClass(){System.out.println("@BeforeClass");}@Beforepublic void befor(){System.out.println("@Before");}@Testpublic void test(){System.out.println("@Test");}@Ignorepublic void ignore(){System.out.println("@Ignore");}@Afterpublic void after(){System.out.println("@After");}@AfterClasspublic static void afterClass(){System.out.println("@AfterClass");}
}
执行效果:
@BeforeClass
构造函数
@Before
@Test
@After
@AfterClass

4. 注意事项

        注意:编写测试类的原则: 

   ①测试方法上必须使用@Test进行修饰

        ②测试方法必须使用public void 进行修饰,不能带任何的参数

        ③新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开

        ④测试类所在的包名应该和被测试类所在的包名保持一致

        ⑤测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖

        ⑥测试类使用Test作为类名的后缀(不是必须)

        ⑦测试方法使用test作为方法名的前缀(不是必须)

5. 结语

        Junit 单元测试框架

        仅供参考.

相关文章:

SpringBoot 集成Junit单元测试

学习文章: https://www.cnblogs.com/ysocean/p/6889906.html 开发工具: IDEA 2022.1.4 目录 目录 1. 概述 2. 实现步骤 2.1 maven导入依赖 2.2 随意代码演示(不推荐) 2.3 规范代码演示(推荐) 3. Junit相关其他注解 4. 注意事项 5. 结语 1. 概述 接触到Junit&#xff0c;…...

Android开发之简单控件

文章目录一 文本显示1.1 文本设置的两种方式1.2 常见字号单位类型2.2 设置文本的颜色三 视图基础3.1 设置视图的宽高3.2 设置视图的间距3.3 设置视图的对齐方式四常用布局4.1 线性布局LinearLayout4.2 相对布局RelativeLayout4.3 网格布局GridLayout4.4 滚动视图ScrollView五 按…...

树状数组讲解

树状数组 文章目录树状数组引入例题AcWing241.楼兰图腾思路代码AcWing 242. 一个简单的整数问题思路代码AcWing 244. 谜一样的牛思路代码总结引入 树状数组主要维护的是这样一个数据结构&#xff1a; tr[x]表示以x为终点的长度为lowbit(x)的前缀和、最大值、最小值、最大公约数…...

每个Android开发都应需知的性能指标~

无论你是发布一个新的 Android 应用&#xff0c;还是希望提高现有应用的性能&#xff0c;你都可以使用 Android 应用性能指标来帮助你。 在这篇文章中&#xff0c;我将解释什么是 Android 应用性能指标&#xff0c;并列出8个需要考虑跟踪的维度和建议的基线。 什么是 Android…...

MSYS2安装

最近在学习windows上编译FFmpeg&#xff0c;需要用到msys2&#xff0c;在此记录一下安装和配置过程。 点击如下链接&#xff0c;下载安装包&#xff1a; Index of /msys2/distrib/x86_64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 我下载的是&#xff1a;ms…...

3/3考试总结

时间安排 7:30–7:50 看题&#xff0c;怎么感觉三道构造&#xff0c;T3 貌似有网络流背景。 7:50–8:30 T1,有一些简单的性质&#xff0c;缩减两端点后枚举一下翻转的区间就可以了。然后花了一点时间写 spj 调试。 8:30–10:20 T2,比较纯粹的构造题。有网络流做法&#xff0c;…...

Spark Streaming DStream转换

DStream上的操作与RDD的类似&#xff0c;分为Transformations&#xff08;转换&#xff09;和Output Operations&#xff08;输出&#xff09;两种&#xff0c;此外转换操作中还有一些比较特殊的算子&#xff0c;如&#xff1a;updateStateByKey()、transform()以及各种Window相…...

水果商城,可运行

文章目录项目介绍一、技术栈二、本项目分为前后台&#xff0c;有管理员与用户两种角色&#xff1b;1、管理员角色包含以下功能&#xff1a;2、用户角色包含以下功能&#xff1a;三、用户功能页面展示四、管理员功能页面展示五、部分代码展示六、获取整套项目源码项目介绍 一、…...

LiveGBS国标GB/T28181国标视频流媒体平台-功能报警订阅配置报警预案告警截图及录像

LiveGBS国标GB/T28181国标视频流媒体平台-功能报警订阅配置报警预案告警截图及录像1、报警信息1.1、报警查询1.2、配置开启报警订阅1.2.1、国标设备编辑1.2.2、选择开启报警订阅1.3、配置摄像头报警1.3.1、配置摄像头报警通道ID1.3.2、配置摄像头开启侦测1.3.3、尝试触发摄像头…...

软件测试---测试分类

一 : 按测试对象划分 1.1 可靠性测试 可靠性&#xff08;Availability&#xff09;即可用性&#xff0c;是指系统正常运行的能力或者程度&#xff0c;一般用正常向用户提供软件服务的时间占总时间的百分比表示。 1.2 容错性测试 行李箱 , 四个轮子 , 坏了一个 , 说明这个容错…...

剑指 Offer II 015. 字符串中的所有变位词

题目链接 剑指 Offer II 015. 字符串中的所有变位词 mid 题目描述 给定两个字符串 s和 p&#xff0c;找到 s中所有 p的 变位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 变位词 指字母相同&#xff0c;但排列不同的字符串。 示例 1&#xff1a; 输…...

【SpringCloud】SpringCloud详细教程之微服务比较

目录前言一.什么是微服务&#xff1f;为什么要使用微服务二.微服务对比三.企业开发场景前言 我会通过实际代码来给展示每个组件的用法 一.什么是微服务&#xff1f;为什么要使用微服务 分布式&#xff0c;把一个项目拆分成多个模块&#xff0c;每一个模块相当于一个服务。 微…...

二.项目使用vue-router,引入ant-design-vue的UI框架,引入less

根据前文《使用Vue脚手架工具搭建vue项目》搭建好脚手架后使用 1.vue-router 2.引入UI框架ant design vue 3.引入less 1.vue-router vue-router分为两种模式(默认为hash模式)&#xff1a; hash history hash&#xff1a; 特征&#xff1a; 1.hash会在浏览器路径里带#号&#…...

网络安全怎么学?20年白帽子老江湖告诉你

很多人都知道龙叔是个老程序员&#xff0c;但却不知道其实我也是个H客&#xff0c;20年前我就开始痴迷于H客技术&#xff0c;可以说是网络安全方面的老江湖了。 到现在&#xff0c;我还依然会去研究这一块&#xff0c;偶尔会和一些网安的朋友交流技术&#xff0c;比如说红盟的…...

药房管理系统;药库管理系统

第一&#xff0c;主要功能&#xff1a;  本系统集日常销售、药品进销存、会员积分、GSP管理等药店所需的所有功能于一体&#xff0c;实现店铺管理的全部自动化。第二、新功能&#xff1a;  增加了“按功能查询药品”的功能&#xff0c;使软件用户可以根据客户的症状推荐合适…...

深眸科技|机器视觉提升制造性能,焕发传统企业智造新活力!

随着机器视觉技术的成熟与发展&#xff0c;其在工业制造中得到越来越广泛的应用。机器视觉在工业制造领域的应用朝着智能识别、智能检测、智能测量以及智能互联的完整智能体系方向发展。此外&#xff0c;快速变化的市场需求&#xff0c;不断涌入行业的竞争对手&#xff0c;让传…...

ubuntu安装SSH的方法

Ubuntu安装SSH的方法。14版的ubuntu经过测试&#xff0c;默认没有开启SSH&#xff0c;所以需要安装。 1、虚拟机设置网卡为桥接模式&#xff0c;即NAT。12版虚拟机默认的。 2、查看ubuntu使用的ip。 ifconfig即可查看&#xff0c;14版的ubuntu自带这个命令。 3、查看是否pi…...

哪种蓝牙耳机通话效果好?通话清晰的蓝牙耳机推荐

出门的时候&#xff0c;如果戴耳机和别人通话&#xff0c;就不必把耳机摘下来&#xff0c;接电话变得前所未有的简单。现在的蓝牙耳机&#xff0c;已经不是单纯的用来听音乐了&#xff0c;而是一种更好的功能。下面这四款蓝牙耳机不仅适合听歌&#xff0c;通话还清晰&#xff0…...

IT运维如何完成一场高质量复盘

复盘的终极目标是&#xff1a;还原事实&#xff0c;找到薄弱点加以改进。 提到复盘&#xff0c;很多人的第一反应是线上故障&#xff0c;有人要背锅了。 复盘真正的价值是还原事实&#xff0c;在薄弱处加以改进。如何做一次高质量的复盘&#xff0c;我们给出3点建议。 1、坦…...

JVM调优面试题——基础知识

文章目录1、JDK&#xff0c;JRE以及JVM的关系2、编译器到底干了什么事&#xff1f;3、类加载机制是什么&#xff1f;3.1、装载(Load)3.2、链接(Link)3.3、初始化(Initialize)4、类加载器有哪些&#xff1f;5、什么是双亲委派机制&#xff1f;6、介绍一下JVM内存划分&#xff08…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

PHP 8.5 即将发布:管道操作符、强力调试

前不久&#xff0c;PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5&#xff01;作为 PHP 语言的又一次重要迭代&#xff0c;PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是&#xff0c;借助强大的本地开发环境 ServBay&am…...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...