博客系统之单元测试

对博客系统进行单元测试

1、测试查找已存在的用户

测试名称

selectByUsernameTest01

测试源码

 

//查找用户,存在
@Test
public void selectByUsernameTest01 () {
UserDao userDao = new UserDao();
String ret1 = userDao.selectByUsername("张三").toString();
System.out.println("test01:" + ret1);
Assert.assertEquals("User{id=1, username='张三', password='123456'}",ret1);
}

测试结果

预期结果

User{id=1, username='张三', password='123456'}

实际结果

User{id=1, username='张三', password='123456'}

2、测试查找不存在的用户

测试名称

selectByUsernameTest02

测试源码

//查找不存在用户
@Test
public void selectByUsernameTest02 () {
UserDao userDao = new UserDao();
User user = userDao.selectByUsername("admin");
String ret2;
if(user!=null){
ret2 = user.toString();
}else{
ret2 =null;
}
System.out.println("test02:" + ret2);
Assert.assertEquals(null,ret2);
}

测试结果

预期结果

null

实际结果

null

3、通过id查找已存在用户

测试名称

selectByIdTest03

测试源码

//通过id查找用户存在
@Test
public void selectByIdTest03 () {
UserDao userDao = new UserDao();
String ret3 = userDao.selectById(1l).toString();
System.out.println("test03:" + ret3);
Assert.assertEquals("User{id=1, username='张三', password='123456'}",ret3);
}

测试结果

预期结果

User{id=1, username='张三', password='123456'}

实际结果

User{id=1, username='张三', password='123456'}

4、通过id查找不存在用户

测试名称

selectByIdTest04

测试源码

//通过id查找不存在用户
@Test
public void selectByIdTest04 () {
UserDao userDao = new UserDao();
User user = userDao.selectById(15l);
String ret4;
if(user!=null){
ret4 = user.toString();
Assert.assertEquals(null,ret4);
}else{
ret4 = null;
}
System.out.println("test02:" + ret4);
Assert.assertEquals(null,ret4);
}

测试结果

预期结果

null

实际结果

null

5、查找所有博客

测试名称

selectAll()

测试源码

//查找所有博客
@Test
public void selectAll() {
BlogDao blogDao = new BlogDao();
String ret5;
if(blogDao.selectAll()!=null){
ret5 = "查询成功";
}else{
ret5 = "查询失败";
}
System.out.println("test05:" + ret5);
Assert.assertEquals("查询成功",ret5);
}

测试结果

预期结果

查询成功

实际结果

查询成功

6、通过id查找存在的博客

测试名称

selectById ()

测试源码

//查找id为1的博客
@Test
public void selectById () {
BlogDao blogDao = new BlogDao();
Blog blog= blogDao.selectById(1l);
String ret6;
if(blog!= null){
ret6 = blog.toString();
}else{
ret6 = null;
}
System.out.println("test06:" + ret6);
Assert.assertEquals("Blog{id=1, title='第一篇博客', content='1234567890v20230710', createTime=2023-07-10 00:00:00.0, userId=1}",ret6);
}

测试结果

预期结果

Blog{id=1, title='单元测试', content='内容', createTime=2023-08-05 17:34:00.0, userId=1}

实际结果

Blog{id=1, title='单元测试', content='内容', createTime=2023-08-05 17:34:00.0, userId=1}

7、通过id查找不存在的博客

测试名称

selectById02

测试源码

//查找id为15的博客,不存在
@Test
public void selectById02 () {
BlogDao blogDao = new BlogDao();
Blog blog= blogDao.selectById(15l);
String ret7;
if(blog != null){
ret7 = blogDao.toString();
}else{
ret7 = "该id博客不存在";
}
System.out.println("test07:" + ret7);
Assert.assertEquals("该id博客不存在",ret7);
}

测试结果

预期结果

该id博客不存在

实际结果

该id博客不存在

8、添加一条博客

测试名称

insertTest ()

测试源码

//添加一条博客
@Test
public void insertTest () {
Blog blog = new Blog();
blog.setTitle("单元测试666");
blog.setContent("单元测试666单元测试666单元测试666单元测试666");
blog.setCreateTime(new Timestamp(System.currentTimeMillis()));
blog.setUserId(1l);
// 写入
BlogDao blogDao = new BlogDao();
int row = blogDao.insert(blog);
String ret8;
if (row==1){
ret8 = "添加成功";
}else {
ret8 = "添加失败";
}
System.out.println("test08:" + ret8);
Assert.assertEquals("添加成功",ret8);
}

测试结果

预期结果

添加成功

实际结果

添加成功

9、删除一条存在的博客

测试名称

deleteTest1

测试源码

//删除一条博客
@Test
public void deleteTest1 () {
BlogDao blogDao = new BlogDao();
int row = blogDao.deleteById(6l);
String ret9;
if (row==1){
ret9 = "删除成功";
}else {
ret9 = "删除失败";
}
System.out.println("test09:" + ret9);
Assert.assertEquals("删除成功",ret9);
}

测试结果

预期结果

删除成功

实际结果

删除成功

10、删除一条不存在的博客

测试名称

deleteTest2

测试源码

//删除一条博客
@Test
public void deleteTest2 () {
BlogDao blogDao = new BlogDao();
int row = blogDao.deleteById(20l);
String ret10;
if (row==1){
ret10 = "删除成功";
}else {
ret10 = "删除失败";
}
System.out.println("test10:" + ret10);
Assert.assertEquals("删除失败",ret10);
}

测试结果

预期结果

删除失败

实际结果

删除失败

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全开放式耳机什么品牌好?全开放式耳机推荐

​在音乐的世界中,开放式耳机提供了更真实、更通透的音质体验,开放式耳机采用不入耳设计,佩戴更为稳固舒适,还允许外界的声音自由地流入,使你在享受音乐的同时,也能保持对周围环境的感知,户外运…

自动驾驶卡车量产-第一章-用户需求

1、中国干线物流行业现状 万亿级市场,规模巨大。由中重卡承运的干线运输占到整体公路货运市场的82%,全国中重卡保有量约730 万台1,市场规模达4.6 万亿元1,体量全球第一,超过同城物流及乘用出租市场规模之和。同样&…

SpringBoot 的 RedisTemplate、Redisson

一、Jedis、Lettuce、Redisson的简介 优先使用Lettuce, 需要分布式锁,分布式集合等分布式的高级特性,添加Redisson结合使用。 对于高并发,1000/s的并发,数据库可能由行锁变成表锁,性能下降会厉害。 1.1、…

卷积神经网络全解!CNN结构、训练与优化全维度介绍!

目录 一、引言1.1 背景和重要性1.2 卷积神经网络概述 二、卷积神经网络层介绍2.1 卷积操作卷积核与特征映射卷积核大小多通道卷积 步长与填充步长填充 空洞卷积(Dilated Convolution)分组卷积(Grouped Convolution) 2.2 激活函数R…

Eclipse集成MapStruct

Eclipse集成MapStruct 在Eclipse中添加MapStruct依赖配置Eclipse支持MapStruct①安装 m2e-aptEclipse Marketplace的方式安装Install new software的方式安装(JDK8用到) ②添加到pom.xml 今天拿到同事其他项目的源码,导入并运行的时候抛出了异…

leetcode做题笔记86分隔链表

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1: 输入:head [1,4,3,2,5,2], x 3 输出&am…

【数据结构OJ题】复制带随机指针的链表

原题链接:https://leetcode.cn/problems/copy-list-with-random-pointer/description/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 此题可以分三步进行: 1. 拷贝链表的每一个结点,拷贝的结点先链接到被拷贝结点…

什么是异常处理

文章目录 异常处理介绍自定义异常页面文档:自定义异常页面说明 自定义异常页面-应用实例需求:代码实现 全局异常说明全局异常-应用实例需求:代码实现完成测试 自定义异常说明自定义异常-应用实例需求:代码实现完成测试 注意事项完成测试 异常处理 介绍 默认情况下…

飞天使-k8s简单搭建(编写中)

文章目录 k8s概念安装部署无密钥配置与hosts与关闭swap开启ipv4转发安装前启用脚本开启ip_vs安装指定版本docker 安装kubeadm kubectl kubelet,此部分为基础构建模版 k8s一主一worker节点部署k8s三个master部署虚拟负载均衡ip创建 参考链接地址 k8s概念 K8sMaster : 管理K8sNo…

Python学习笔记_基础篇(二)_数据类型之字符串

一.基本数据类型 整数:int 字符串:str(注:\t等于一个tab键) 布尔值: bool 列表:list 列表用[] 元祖:tuple 元祖用() 字典:dict 注:所有的数据类型都存在想对应…

Jmeter 连接 MySQL 数据库脚本

1、创建线程组 2、创建 JDBC Connection Configuration 3、创建 JDBC Request 4、最终创建的目录 5、重点来了 5.1 在百度中下载个 MySQL-connector-Java-8.0.28.jar,放在 jmeter 的 bin 目录下 5.2 在测试计划中,将 jar 包添加到脚本中 5.3 输入参…

【动态map】牛客挑战赛67 B

登录—专业IT笔试面试备考平台_牛客网 题意: 思路: 考虑动态的map 可以先定义一个状态,然后用map统计前缀这个状态的出现次数 在这里,定义{a,b}为cnt1 - cnt0和cnt2 - cnt0 当cnt0 和 cnt1都和cnt2相同时,统计贡献…

算法通关村第3关【白银】| 双指针思想

1. 双指针思想 双指针不仅指两个指针,也可以是两个变量,指向两个值。 有三种类型: 快慢型:一前一后对撞型:从两端向中间靠拢背向型:从中间向两端分开 2. 删除元素专题 2.1原地移除元素 (1)快慢指针 思…

Docker安装基础使用练习

目录 1、安装Docker-CE 1)简单使用yum方式安装 ! 2)配置镜像加速: 2、下载系统镜像(Ubuntu、 centos) 1)先查看我们所需的镜像有哪些版本。使用search命令! 2)下载镜像使用的是pul…

nestjs 基础、使用 passport 来进行鉴权

回顾一些定义 NestJS 部分 Module 模块结构 模块是一个图状引用关系。 模块的实例化有三种模式。默认情况是 singletones 模式,也就是模块可能被引用,但不同的引用处拿的是同一个共享实例,也就是说一个进程有一个唯一的实例被共享。 模块&a…

uni-app自定义多环境配置,动态修改appid

背景 在企业级项目开发中,一般都会分为开发、测试、预发布、生产等多个环境,在工程化中使用不同的打包命令改变环境变量解决不同环境各种变量需要手动修改的问题,比如接口请求地址,不同环境的请求路径前缀都是不同的。在使用uni-…

虚拟现实与增强现实技术的商业应用

章节一:引言 随着科技的不断发展,虚拟现实(Virtual Reality,简称VR)与增强现实(Augmented Reality,简称AR)技术正日益成为商业领域中的重要创新力量。这两种技术为企业带来了前所未…

深入源码分析kubernetes informer机制(四)DeltaFIFO

[阅读指南] 这是该系列第四篇 基于kubernetes 1.27 stage版本 为了方便阅读,后续所有代码均省略了错误处理及与关注逻辑无关的部分。 文章目录 client-go中的存储结构DeltaFIFOdelta索引 keyqueue push操作delta push 去重 queue pop操作 总结 client-go中的存储结构…

CCLINK转MODBUS-TCP网关cclink通讯接线图 终端电阻

大家好,今天我们要聊的是生产管理系统中的CCLINK和MODBUS-TCP协议,它们的不同使得数据互通比较困难,但捷米JM-CCLK-TCP网关的出现改变了这一切。 1捷米JM-CCLK-TCP是一款自主研发的CCLINK从站功能的通讯网关,它的主要功能是将各种…

PS丢失d3dcompiler_47.dll文件怎么办(附详细修复方法)

我们在安装PS等软件的时候,有可能安装完之后出现以下问题(特别是win10或者win11系统) 错误: 打开PS的时候出现这个错误:无法启动此程序,因为计算机中丢失D3DCOMPILER_47.dll。尝试重新安装该程序以解决此问…