博客系统之单元测试

对博客系统进行单元测试

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);
}

测试结果

预期结果

删除失败

实际结果

删除失败

 

 

 

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

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

相关文章

【学习日记】【FreeRTOS】任务调度时如何考虑任务优先级——任务的自动切换

写在前面 本文开始为 RTOS 加入考虑任务优先级的自动调度算法,代码大部分参考野火。 本文主要是一篇学习笔记,加入了笔者自己对野火代码的梳理和理解。 一、基本思路 首先我们要知道,在 RTOS 中,优先级越高、越需要被先执行的的…

解析大规模开发:提升企业级开发效率与质量,加速创新

在数字化转型的大环境下,越来越多的企业依赖软件来驱动业务和创新。然而,随着开发规模日益庞大,如何更好地提升研发效能,从而塑造更强大的竞争力,已然成为众多企业亟待解决的共同难题。 作为国内领先的DevSecOps提供商…

运放和三极管构成的恒流源电路

这是一个由运放和三极管构成的恒流源电路,RL为负载电阻,R1为采样电阻。 流过三极管集电极的电流 下面分析下这个电路的工作原理。首先我们可以看到这个运放引入了负反馈,所以它工作在线性区的,就有VINVPVN。 所以流过采样电阻R1的…

C#程序变量统一管理例子 - 开源研究系列文章

今天讲讲关于C#应用程序中使用到的变量的统一管理的代码例子。 我们知道,在C#里使用变量,除了private私有变量外,程序中使用到的公共变量就需要进行统一的存放和管理。这里笔者使用到的公共变量管理库划分为:1)窗体;2)…

OpenCV-Python中的图像处理-GrabCut算法交互式前景提取

OpenCV-Python中的图像处理-GrabCut算法交互式前景提取 Python-OpenCV中的图像处理-GrabCut算法交互式前景提取 Python-OpenCV中的图像处理-GrabCut算法交互式前景提取 cv2.grabCut(img: Mat, mask: typing.Optional[Mat], rect, bgdModel, fgdModel, iterCount, mode…) img…

基于Java+SpringBoot制作一个智能用电小程序

在当今快节奏的生活中,高效利用能源变得越来越重要。制作一个智能用电小程序,旨在帮助您更智能地管理家庭电器的用电,从而提升能源利用效率,助您掌握用电情况,降低能耗成本,实现绿色低碳生活。 目录 一、小程序1.1 项目创建1.2 首页轮播图快捷导航iconfont图标引入

GSM/CDMA/VoLTE/VoIP通话

1.GSM(Global System for Mobile Communications) 本质是一种多址技术,将多个通话放入一段无线电频道的方法。特点是通过“时间划分”,称为时分多址。 2.CDMA(Code Division Multiple Access) 一种多址技术,将多个通话放入一段无线电频道的…

AIGC绘画:kaggle部署stable diffusion项目绘画

文章目录 kaggle介绍项目部署edit my copy链接显示 结果展示 kaggle介绍 Kaggle成立于2010年,是一个进行数据发掘和预测竞赛的在线平台。从公司的角度来讲,可以提供一些数据,进而提出一个实际需要解决的问题;从参赛者的角度来讲&…

async/await 编程理解

博客主要是参考 Asynchronous Programming in Rust ,会结合简单的例子,对 async 和 await 做比较系统的理解,如何使用 async 和 await 是本节的重点。 async 和 await 主要用来写异步代码,async 声明的代码块实现了 Future 特性&a…

批量爬虫采集完成任务

批量爬虫采集是现代数据获取的重要手段,然而如何高效完成这项任务却是让许多程序员头疼的问题。本文将分享一些实际操作价值高的方法,帮助你提高批量爬虫采集的效率和专业度。 目标明确,任务合理划分: 在开始批量爬虫采集前&…

Linux:安全技术与防火墙

目录 一、安全技术 1.安全技术 2.防火墙的分类 3.防水墙 4.netfilter/iptables关系 二、防火墙 1、iptables四表五链 2、黑白名单 3.iptables命令 3.1查看filter表所有链 iptables -L ​编辑3.2用数字形式(fliter)表所有链 查看输出结果 iptables -nL 3.3 清空所有链…

SpringCloud Ribbon中的7种负载均衡策略

SpringCloud Ribbon中的7种负载均衡策略 Ribbon 介绍负载均衡设置7种负载均衡策略1.轮询策略2.权重策略3.随机策略4.最小连接数策略5.重试策略6.可用性敏感策略7.区域敏感策略 总结 负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端…

C++线程库

C线程库是C11新增的重要的技术之一,接下来来简单学习一下吧! thread类常用接口 函数名功能thread()构造一个线程对象,没有关联任何线程函数,即没有启动任何线程。thread(fn, args1, args2, ...)构造一个线程对象,并…

【数据结构入门指南】二叉树顺序结构: 堆及实现(全程配图,非常经典)

【数据结构入门指南】二叉树顺序结构: 堆及实现(全程配图,非常经典) 一、前言:二叉树的顺序结构二、堆的概念及结构三、堆的实现(本篇博客以实现小堆为例)3.1 准备工作3.2 初始化3.3 堆的插入3.3.1 向上调…

微服务中间件--分布式事务

分布式事务 a.理论基础1) CAP定理2) BASE理论 b.Seata1) XA模式1.a) 实现XA模式 2) AT模式3) TCC模式3.a) 代码实现 4) Saga模式5) 四种模式对比6) TC的异地多机房容灾架构 a.理论基础 1) CAP定理 分布式系统有三个指标: Consistency(一致性&#xff…

opencv-人脸关键点定位

#导入工具包 from collections import OrderedDict import numpy as np import argparse import dlib import cv2#https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/ #http://dlib.net/files/# 参数 ap argparse.ArgumentParser() ap.add_argument("-p&quo…

【Java】常见面试题:HTTP/HTTPS、Servlet、Cookie、Linux和JVM

文章目录 1. 抓包工具(了解)2. 【经典面试题】GET和POST的区别:3. URL中不是也有这个服务器主机的IP和端口吗,为啥还要搞个Host?4. 补充5. HTTP响应状态码6. 总结HTTPS工作过程(经典面试题)7. H…

vue3 清空/重置reactive

序: 1、适用场景:表单切换验证如下图。 我举个例子,如果下拉选银行卡,提交表单的时候所属银行是要必填验证,但是如果选支付宝,那所属银行就非必填了,然而很多时候from的rules是以props来传的&a…

飞书小程序开发

1.tt.showModal后跳转页面 跳转路径要为绝对路径,相对路径跳转无响应。 2.手机息屏后将不再进入onload()生命周期,直接进入onshow()生命周期。 onLoad()在页面初始化的时候触发,一个页面只调用一次。 onShow()在切入前台时就会触发&#x…

springBoot 配置文件 jpa 相关参数的作用

在Spring Boot应用中,可以通过配置文件来配置JPA(Java Persistence API)相关的参数。下面是一些常用的JPA配置参数及其作用: spring.jpa.database: 指定JPA使用的数据库类型,默认为自动检测。可选值有HSQL、H2、DERBY…