/单元测试

承接上文

统一异常处理,封装结果-CSDN博客

********************************************

登录业务

@Service
public class EmployeeServiceImpl extends ServiceImpl<EmployeeMapper, Employee> implements EmployeeService {@Resourceprivate JwtUtils jwtUtils;@Overridepublic String login(Employee employee) {//2.构造条件LambdaQueryWrapper<Employee> wrapper = new LambdaQueryWrapper<>();wrapper.eq(Employee::getUsername,employee.getUsername()).or().eq(Employee::getPhone,employee.getPhone());//1. 根据用户名或者密码查询用户信息Employee employeeInDb = this.getOne(wrapper);//3.判断是否查询到用户if(employeeInDb == null){throw new BusinessException(ResponseEnum.USER_INVALID);}//4.比较密码if(!BCrypt.checkpw(employee.getPassword(),employeeInDb.getPassword())){throw new BusinessException(ResponseEnum.PASSWORD_INVALID);}//5.签发tokenString token = jwtUtils.createJwt(employeeInDb.getId(),null,60*60*24*7L,"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");return token;}
}

现要对这个登录业务进行测试,要测试的情况有 登录成功,账号或电话输入错误,密码输入错误三种情况

异常状态码

单元测试

通过断言对失败的情况进行判定,通过Assertions.assertEquals进行进一步判定异常的具体出错信息。

@SpringBootTest
public class EmployeeControllerTests {@Resourceprivate EmployeeController employeeController;@Test//成功的情况public void testLoginSuccess() {Employee employee = new Employee();employee.setUsername("admin");employee.setPassword("123456");}@Testpublic void testLoginPasswordError() {//断言BusinessException e = Assertions.assertThrows(BusinessException.class, () -> {Employee employee = new Employee();employee.setUsername("admin");employee.setPassword("1234567");employeeController.login(employee);});//进一步断定更详细的异常类型Assertions.assertEquals("密码错误",e.getResponse().getMessage());}@Testpublic void testLoginUsernameError() {BusinessException e = Assertions.assertThrows(BusinessException.class, () -> {Employee employee = new Employee();employee.setUsername("adminaa");employee.setPassword("123456");employeeController.login(employee);});Assertions.assertEquals("用户不存在",e.getResponse().getMessage());}}

测试结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/52956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库透明加密的定义与原理

数据库透明加密(TDE)是一种先进的加密技术&#xff0c;主要用于保护存储在数据库中的敏感数据&#xff0c;防止未经授权的访问和数据泄露。以下是对数据库透明加密的详细解析&#xff1a; 一、定义与原理 定义&#xff1a;数据库透明加密是一种在数据库管理系统(DBMS)中集成加密…

苹果笔记本电脑能不能玩游戏?苹果电脑玩游戏咋样?

过去Mac玩不了游戏最大的问题&#xff0c;就是图形API自成一体&#xff0c;苹果既不支持微软的DirectX&#xff0c;同时为了推广自家的Metal图形API&#xff0c;又对OpenGL和Vulkan两大主流的通用API敬而远之。游戏生态、硬件瓶颈让苹果电脑不适合玩游戏。 不过说到底&#xf…

点餐收银小程序

一、项目概述 Hi&#xff0c;大家好&#xff0c;今天分享的项目是《点餐收银小程序》。 系统含管理员/商家/用户三种角色&#xff0c;商家能维护菜式类别、维护菜品信息&#xff0c;用户在小程序能够选择门店&#xff0c;查看门店下各个分类的菜式信息&#xff0c;并进行加购…

ASP.NET Core 入门教学七 缓存机制

ASP.NET Core 提供了多种缓存机制&#xff0c;可以帮助您提高应用程序的性能。以下是一些常用的缓存方法&#xff1a; 1. 内存缓存 内存缓存是最简单的缓存形式&#xff0c;它将数据存储在应用程序的内存中。ASP.NET Core 提供了一个 IMemoryCache 接口&#xff0c;用于实现内…

ai免费生成ppt软件有哪些?我推荐秒出PPT

现在市面上的ai生成PPT软件非常的多。有收费的&#xff0c;也有不收费的&#xff0c;生成的效果也各不相同。要选择一个性价比高的确实难度不小。 我在使用了不少的产品之后&#xff0c;说一说我的心得。 首先就是&#xff0c;大部分免费的ai生成ppt产品并不好用。我怕不排除…

Cortex-A7的运行模式和寄存器组详解

0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版2 Cortex-A7运行模式 2.1 运行模式 Cortex-A7共有9种运行模式&#xff0c;如下图所示&#xff1a; 除了用户模式之外其它模式均属于特权模式&#xff0c;在特权模式下处理器可以访问所有系统资源&am…

Golang | Leetcode Golang题解之第384题打乱数组

题目&#xff1a; 题解&#xff1a; type Solution struct {nums, original []int }func Constructor(nums []int) Solution {return Solution{nums, append([]int(nil), nums...)} }func (s *Solution) Reset() []int {copy(s.nums, s.original)return s.nums }func (s *Solu…

Linux 网络延迟排查工具

使用 hping3 和 wrk 等工具确认单个请求和并发请求的网络延迟是否正常。使用 traceroute&#xff0c;确认路由正确&#xff0c;并查看路由中每个网关跳跃点的延迟。使用 tcpdump 和 Wireshark 确认网络数据包是否正常收发。使用 strace 等观察应用程序对网络 socket 的调用是否…

硬件工程师必须掌握的MOS管详细知识

MOS管&#xff0c;全称为金属-氧化物半导体场效应晶体管&#xff08;Metal-Oxide-Semiconductor Field-Effect Transistor&#xff0c;MOSFET&#xff09;&#xff0c;是一种重要的半导体器件&#xff0c;广泛应用于电子工业中各种电路的开关、放大、调制、数字电路和模拟电路等…

使用docker容器部署考试系统

8.30 回顾 1、使用harbor仓库 python --version yum -y update yum -y install python2-pip 部署考试系统 使用docker部署project-exam-system 1、在一台主机内&#xff0c;实现容器的编排看&#xff0c;发布考试系统 2、环境准备 docker docker-compose docker脚本 …

Fabric.js中fabric.Textbox的深入解析

在Web开发中&#xff0c;文本处理是一个重要的环节&#xff0c;尤其是在图形编辑和画布应用中。Fabric.js作为一个强大的Canvas库&#xff0c;提供了丰富的API来处理图形和文本。其中&#xff0c;fabric.Textbox是Fabric.js中用于创建和管理文本框对象的类。本文将深入解析fabr…

【Next】2. 项目构建

打开 Next.js 的官方文档&#xff1a;https://nextjs.org/docs/getting-started/installation&#xff08;国内文档不够新&#xff09; Next.js 版本 14.2 &#xff0c; Node.js 的版本要求必须 > 18.18。 Next 有两种开发模式&#xff0c;下面讲新的 APP Router。 创建项…

速盾:防御ddos攻击的几大有效方法是什么?

DDoS攻击&#xff08;分布式拒绝服务攻击&#xff09;是一种恶意攻击手段&#xff0c;旨在通过向目标服务器发送大量的请求&#xff0c;使其无法正常响应正常用户的请求。这种攻击会耗尽服务器的带宽和资源&#xff0c;导致服务不可用。为了保护网络安全&#xff0c;防御DDoS攻…

机械学习—零基础学习日志(概率论总笔记3)

“条件概率”和“本身概率” 对于几乎所有的随机事件来讲&#xff0c;条件概率由于条件的存在&#xff0c;它通常不等于本身的概率。前提条件会影响后续的概率&#xff0c;在一个前提条件下&#xff0c;某个时间发生的概率&#xff0c;我理解&#xff0c;这叫&#xff0c;条件…

【R语言】基于Biomod2集成平台探究物种分布区的构建流程(SDMs)(持续更新中。。。。。。)

Species Distribution Models 1.写在前面2.物种分布模型介绍3.输入数据准备及预处理3.1.如何从GBIF网站上获取分布点数据&#xff08;基于rgbif包&#xff09;3.2.分布点稀疏处理&#xff08;基于spThin函数&#xff09;3.3.如何获取环境变量数据&#xff08;基于getData函数&a…

Android 常用三种日志框架[Logger、Timber、XLog]

一、日志框架背景 如果我们需要用三方库&#xff0c;那就意味着基于原生方案会存在一些痛点&#xff0c;我们不得不使用某种手段去解决这些痛点。那原生 Logcat 存在哪些痛点&#xff0c;我们来聊一聊&#xff1a; 日志不能持久化&#xff0c;缓冲区日志很容易丢失如果系统压…

高等代数精解【10】

文章目录 线性方程组概述增广矩阵基础一、增广矩阵的作用二、增广矩阵的实际应用例题 高斯消元法基础julia代码实现高斯消元法算法方阵高斯消元法非方阵的情况 Julia 中将整型矩阵转换为浮点型矩阵。方法 1&#xff1a;使用类型转换函数方法 2&#xff1a;使用 convert 函数方法…

C语言字符串拼接

在 C 语言中&#xff0c;可以使用标准库函数 strcat 或 strncat 来拼接字符串。这些函数位于 string.h 头文件中&#xff0c;负责将一个字符串追加到另一个字符串的末尾。 1. 使用 strcat 进行字符串拼接 strcat 函数用于将源字符串&#xff08;source&#xff09;追加到目标…

Linux CentOS 添加路由

一、临时添加 查看当前路由表 ip route show添加路由 假设你要添加一条到特定网络的路由&#xff0c;可以使用以下命令&#xff1a; sudo ip route add <destination_network>/<netmask> via <gateway> dev <interface>例如&#xff0c;要添加一条…

【Python123题库】#统计文章字符数 #查询高校信息 #查询高校名

禁止转载&#xff0c;原文&#xff1a;https://blog.csdn.net/qq_45801887/article/details/140081854 参考教程&#xff1a;B站视频讲解——https://space.bilibili.com/3546616042621301 有帮助麻烦点个赞 ~ ~ Python123题库 统计文章字符数查询高校信息查询高校名 统计文章…