线上论坛之单元测试

news2024/11/16 13:31:43

对线上论坛进行单元测试的测试报告

源码地址:https://gitee.com/coisini-thirty-three/forum

一、用户部分(UserServiceImplTest)

1.创建普通用户

测试名称

createNormalUser()

测试源码

@Test
void createNormalUser() {
// 构造用户
User user = new User();
user.setUsername("TestUser");
user.setNickname("单元测试用户");
user.setPassword("123456");
user.setSalt("123456");
//调用Service
userService.createNormalUser(user);
System.out.println("注册成功");
// System.out.println("=================");
// user.setUsername("bitboy");
// userService.createNormalUser(user);
// System.out.println("注册成功");
}

测试结果
预期结果注册成功
实际结果注册成功

2.用户登录

测试名称

login()

测试源码@Test
    void login() throws JsonProcessingException {
        // 正常用户
        User user = userService.login("bitgirl", "123456");
        System.out.println(objectMapper.writeValueAsString(user));
    }
测试结果
预期结果返回用户信息
实际结果返回用户信息

3.根据用户名查询用户信息

测试名称

selectByName()

测试源码

@Test
void selectByName() throws JsonProcessingException {
User user = userService.selectByName("bitboy");
System.out.println(objectMapper.writeValueAsString(user));
System.out.println("==========================");
user = userService.selectByName("bitboy111");
System.out.println(objectMapper.writeValueAsString(user));
System.out.println("==========================");
// user = userService.selectByName(null);
// System.out.println(objectMapper.writeValueAsString(user));
}

测试结果
预期结果返回用户信息
实际结果返回用户信息·

4.根据Id查询用户信息

测试名称

selectById()

测试源码

@Test
void selectById() throws JsonProcessingException {
//bitboy
User user = userService.selectById(1l);
System.out.println(objectMapper.writeValueAsString(user));
//bitgril
user = userService.selectById(2l);
System.out.println(objectMapper.writeValueAsString(user));

//null
user = userService.selectById(20l);
System.out.println(objectMapper.writeValueAsString(user));
}

测试结果
预期结果返回用户信息
实际结果返回用户信息

5.用户发帖数 +1

测试名称

addOneArticleCountById()

测试源码

@Test
//加了事务的注解之后,测试的结果不在持久化到数据库,测试通过之后,写入的

数据会被回滚,从而不污染数据库
@Transactional // 更新的测试,建议在方法级别上加入事务注解,
void addOneArticleCountById() {
userService.addOneArticleCountById(1l);
System.out.println("更新成功");

userService.addOneArticleCountById(2l);
System.out.println("更新成功");

// userService.addOneArticleCountById(100l);
// System.out.println("更新成功");

}

测试结果
预期结果更新成功
实际结果更新成功

6.用户发帖数 -1

测试名称

subOneArticleCountById()

测试源码

@Test
void subOneArticleCountById() {
userService.subOneArticleCountById(1l);
System.out.println("更新成功");
}

测试结果
预期结果更新成功
实际结果更新成功

7.修改个人信息

测试名称

modifyInfo()

测试源码

@Test
@Transactional
void modifyInfo() {
User user = new User();
user.setId(2l);
user.setNickname("bitgirl");
user.setGender((byte) 0);
user.setPhoneNum("123456789");
user.setEmail("123456@qq.com");
user.setRemark("我是一个美丽的小女孩");
//调用service
userService.modifyInfo(user);
System.out.println("更新成功");
}

测试结果
预期结果更新成功
实际结果更新成功

8.修改用户密码

测试名称

modifyPassword()

测试源码

@Test
void modifyPassword() {
userService.modifyPassword(1l,"123456","123");
System.out.println("更新成功");
}

测试结果
预期结果更新成功
实际结果更像成功

二、帖子部分(ArticleServiceImplTest)

1.查询所有的帖子集合

测试名称

selectAll()

测试源码

@Test
void selectAll() throws JsonProcessingException {
List<Article> result = articleService.selectAll();
System.out.println(objectMapper.writeValueAsString(result));
}

测试结果
预期结果返回帖子列表
实际结果返回帖子列表

2.根据板块id查询帖子列表 

测试名称

selectByBoardId()

测试源码

@Test
void selectByBoardId() throws JsonProcessingException {
//Java板块
List<Article> articles = articleService.selectByBoardId(1l);
System.out.println(objectMapper.writeValueAsString(articles));
//c++ 板块
articles = articleService.selectByBoardId(2l);
System.out.println(objectMapper.writeValueAsString(articles));
//不存在的
articles = articleService.selectByBoardId(100l);
System.out.println(objectMapper.writeValueAsString(articles));
}

测试结果
预期结果返回帖子列表
实际结果返回帖子列表

3.发布新贴

测试名称

create()

测试源码

@Test
@Transactional
void create() {
Article article = new Article();
article.setBoardId(9l);
article.setUserId(1l);
article.setTitle("单元测试标题1");
article.setContent("单元测试内容1");
//调用Service
articleService.create(article);
System.out.println("写入成功");
}

测试结果
预期结果写入成功
实际结果写入成功

4.根据帖子id查询帖子列表

测试名称

selectById()

测试源码

@Test
void selectById() throws JsonProcessingException {
Article article = articleService.selectById(1l);
System.out.println(objectMapper.writeValueAsString(article));

article = articleService.selectById(19l);
System.out.println(objectMapper.writeValueAsString(article));

article = articleService.selectById(900l);
System.out.println(objectMapper.writeValueAsString(article));
}

测试结果
预期结果返回帖子信息
实际结果返回帖子信息

5.根据用户id查询帖子列表

测试名称

selectByUserId()

测试源码

@Test
void selectByUserId() throws JsonProcessingException {
List<Article> articles = articleService.selectByUserId(1l);
System.out.println(objectMapper.writeValueAsString(articles));

articles = articleService.selectByUserId(2l);
System.out.println(objectMapper.writeValueAsString(articles));

articles = articleService.selectByUserId(100l);
System.out.println(objectMapper.writeValueAsString(articles));
}

测试结果
预期结果返回帖子列表
实际结果返回帖子列表

6.更新帖子的访问数量

测试名称

updateVisitCountById()

测试源码

@Test
void updateVisitCountById() {
articleService.updateVisitCountById(1l);
System.out.println("更新成功");
}

测试结果
预期结果更新成功
实际结果更新成功

7.根据帖子id更新帖子标题和内容

测试名称

modify()

测试源码

@Test
void modify() {
articleService.modify(25l,"测试提示效果111","测试贴是效果222");
System.out.println("更新成功");
}

测试结果
预期结果更新成功
实际结果更新成功

8.根据Id删除帖子

测试名称

void deleteById()

测试源码

@Test
@Transactional
void deleteById() {
articleService.deleteById(16l);
System.out.println("删除成功");
}

测试结果
预期结果删除成功
实际结果删除成功

9.根据article更新对象

测试名称

updateById()

测试源码

@Test
@Transactional
void updateById() {
Article article = new Article();
article.setId(1l);
article.setUpdateTime(new Date());
articleService.updateById(article);
System.out.println("更新成功");
}

测试结果
预期结果更新成功
实际结果更新成功

10.点赞帖子

测试名称

thumbsUpById()

测试源码

@Test
@Transactional
void thumbsUpById() {
articleService.thumbsUpById(1L);
System.out.println("点赞成功");
}

测试结果
预期结果点赞成功
实际结果点赞成功

三、帖子回复部分(ArticleReplyServiceImplTest)

1.根据帖子Id查询回复列表

测试名称

selectByArticleId()

测试源码

@Test
void selectByArticleId() throws JsonProcessingException {
List<ArticleReply> articleReplies = articleReplyService.selectByArticleId(1l);
// System.out.println(objectMapper.writeValueAsString(articleReplies));

// articleReplies = articleReplyService.selectByArticleId(100l);
// System.out.println(objectMapper.writeValueAsString(articleReplies));

Assertions.assertNotNull(articleReplies);
System.out.println("根据帖子Id查询回复列表");
}

测试结果
预期结果返回帖子列表
实际结果返回帖子列表

2.新增一个回复记录

测试名称

create()

测试源码

@Test
@Transactional
void create() {
ArticleReply articleReply = new ArticleReply();
articleReply.setArticleId(3l);
articleReply.setPostUserId(2l);
articleReply.setContent("单元测试");
//调用service
articleReplyService.create(articleReply);
System.out.println("回复成功");
}

测试结果
预期结果回复成功
实际结果回复成功

四、板块部分(BoardServiceImplTest)

1.查询首页的板块列表

测试名称

selectByNum()

测试源码

@Test
void selectByNum() throws JsonProcessingException {
List<Board> boards = boardService.selectByNum(9);
System.out.println(objectMapper.writeValueAsString(boards));
}

测试结果
预期结果返回板块列表
实际结果返回板块列表

2.根据id查询板块信息

测试名称

selectById()

测试源码

@Test
void selectById() throws JsonProcessingException {
//Java
Board board = boardService.selectById(1l);
System.out.println(objectMapper.writeValueAsString(board));
//c++
board = boardService.selectById(2l);
System.out.println(objectMapper.writeValueAsString(board));
//不存在
board = boardService.selectById(100l);
System.out.println(objectMapper.writeValueAsString(board));
}

测试结果
预期结果返回板块信息
实际结果返回板块信息

3.版块中的帖子数量 +1

测试名称

addOneArticleCountById()

测试源码

@Test
void addOneArticleCountById() {
boardService.addOneArticleCountById(1l);
System.out.println("更新成功");

boardService.addOneArticleCountById(2l);
System.out.println("更新成功");

}

测试结果
预期结果更新成功
实际结果更新成功

4.版块中的帖子数量 -1

测试名称

subOneArticleCountById()

测试源码

@Test
@Transactional
void subOneArticleCountById() {
boardService.subOneArticleCountById(7l);
System.out.println("更新成功");
}

测试结果
预期结果更新成功
实际结果更新成功

五、站内信部分(MessageServiceImplTest)

1.发送站内信息

测试名称

create()

测试源码

@Test
@Transactional
void create() {
Message message = new Message();
message.setPostUserId(2l);
message.setReceiveUserId(1l);
message.setContent("单元测试");
messageService.create(message);
System.out.println("发送成功");
}

测试结果
预期结果发送成功
实际结果发送成功

2.根据Id查询站内信

测试名称

selectById()

测试源码

@Test
void selectById() throws JsonProcessingException {
Message message = messageService.selectById(1l);
System.out.println(objectMapper.writeValueAsString(message));
}

测试结果
预期结果返回站内信
实际结果返回站内信

3.根据用户Id查询该用户未读数量

测试名称

selectUnreadCount()

测试源码

@Test
void selectUnreadCount() {
Integer count = messageService.selectUnreadCount(1l);
System.out.println("未读数量为: " + count);
count = messageService.selectUnreadCount(2l);
System.out.println("未读数量为: " + count);
count = messageService.selectUnreadCount(20l);
System.out.println("未读数量为: " + count);
}

测试结果
预期结果返回未读数量
实际结果返回未读数量

4.根据接收者用户Id查询所有站内信

测试名称

selectByReceiveUserId()

测试源码

@Test
void selectByReceiveUserId() throws JsonProcessingException {
List<Message> messages = messageService.selectByReceiveUserId(1l);
System.out.println(objectMapper.writeValueAsString(messages));

messages = messageService.selectByReceiveUserId(2l);
System.out.println(objectMapper.writeValueAsString(messages));

messages = messageService.selectByReceiveUserId(20l);
System.out.println(objectMapper.writeValueAsString(messages));
}

测试结果
预期结果返回回复私信
实际结果返回回复私信

5.更新指定站内信的状态

测试名称

updateStateById()

测试源码

@Test
@Transactional
void updateStateById() {
messageService.updateStateById(1l, (byte) 1);
System.out.println("更新成功");
}

测试结果
预期结果更新时间
实际结果更新时间

6.回复站内信

测试名称

reply()

测试源码

@Test
void reply() {
// 构建对象
Message message = new Message();
message.setPostUserId(1l);
message.setReceiveUserId(2l);
message.setContent("单元测试回复");
// 调用service
messageService.reply(2l, message);
System.out.println("回复成功");
}

测试结果
预期结果回复成功
实际结果回复成功

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

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

相关文章

Linux 系统目录结构 终端

系统目录结构 Linux 或 Unix 操作系统中&#xff0c;所有文件和目录呈一个以根节点为始的倒置的树状结构。文件系统的最顶层是根目录&#xff0c;用 / 来表示根目录。在根目录之下的既可以是目录&#xff0c;也可以是文件&#xff0c;而每一个目录中又可以包含子目录文件。如此…

什么是函数式编程(functional programming)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 函数式编程⭐ 核心概念⭐ 函数式编程示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前…

解决WSL2占用内存过多问题(Docker on WSL2: VmmemWSL)

解决WSL2占用内存过多问题&#xff08;Docker on WSL2: VmmemWSL&#xff09; 一、问题描述二、问题解决2.1 创建.wslconfig文件2.2 重启wsl2 一、问题描述 安装完WSL2后&#xff0c;又安装了Docker&#xff0c;使用了一段时间&#xff0c;发现电脑变卡&#xff0c;进一步查看…

voliate实战:voliate可见性验证有序性非原子性验证

一、可见性验证 下面的程序验证了voliate的可见性。 public class VolatileVisibilityTest {private static volatile boolean inintFlag false;public static void main(String[] args) throws InterruptedException {new Thread(() -> {System.out.println("waiti…

Springboot-mybatis创建项目报错day01

problem01 出现springboot引入mbatis-plus依赖单元测试时出现 Error:(3, 44) java: 程序包com.baomidou.mybatisplus.core.mapper不存在。 Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException:异常。 solution 点击右边侧栏Maven的Ge…

在visual studio里安装Python并创建python工程

在2009年&#xff0c;云计算开始发力&#xff0c;Python、R、Go这些天然处理批量计算的语言也迅猛发展。微软在2010年&#xff0c;把Python当成一个语言包插件&#xff0c;集成到了visual studio 2010里。在"云优先&#xff0c;移动优先"的战略下&#xff0c;于2015年…

直方图规定化,计算 SML 映射(数字图像处理大题复习 P3)

文章目录 1. 累计直方图概率2. 累计规定直方图3. 根据累计直方图概率和累计规定直方图 计算 SML 映射4. 计算变化后直方图结果 1. 累计直方图概率 我们最终的目的是从 表 1 变成 表 2 首先我们仍要先求出累计直方图概率 2. 累计规定直方图 把规定直方图抄到下面 然后我们…

Python入门教学——self

1、简介 我们知道在创建类的实例方法时&#xff0c;需要传入一个self&#xff0c;不然就会报错。那么这个self是什么呢&#xff1f;有什么作用呢&#xff1f; def 方法名(self,args): # args为参数pass 在Python类中规定&#xff0c;函数的第一个参数是实例对象本身&#xff…

FreeRTOS进阶-任务管理实践

一、使用接口函数创建任务 1.动态创建 xTaskCreate() 函数原型&#xff1a; BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 函数指针, 任务函数 const char * const pcName, // 任务的名字 const configSTACK_DEPTH_T…

渗透测试之漏洞挖掘指南(一)

1.漏洞挖掘中什么漏洞最多&#xff1f; 新手想快速挖掘到漏洞&#xff0c;要专注在业务逻辑与前端漏洞 -- 业务逻辑 &#xff08;弱密码&#xff0c;等等&#xff09; -- 前端漏洞 &#xff08;xss, csrf , cors, jsonp...&#xff09; 2. 常见漏洞提交平台 注册应急响应中…

投资理财基础知识:指数基金定投是什么?

大家好&#xff0c;我是财富智星&#xff0c;今天跟大家分享一下投资理财基础知识&#xff1a;指数基金定投是什么&#xff1f; 首先&#xff0c;你需要进行理财风险偏好测试&#xff0c;以确定自己的类型。风险偏好一般分为保守型、稳健型、平衡型、进取型和激进型。每个人对风…

C# 实现迷宫游戏

智能提示&#xff1a; /// <summary>/// 迷宫/// </summary>internal class Maze : IDisposable{private MazeCell[,] cells;private readonly Stack<MazeCell> stack new Stack<MazeCell>();private readonly Random rand new Random();private int…

Python 文件写入操作

视频版教程 Python3零基础7天入门实战视频教程 w模式是写入&#xff0c;通过write方法写入内容。 # 打开文件 模式w写入&#xff0c;文件不存在&#xff0c;则自动创建 f open("D:/测试3.txt", "w", encoding"UTF-8")# write写入操作 内容写入…

电脑软件:火绒应用商店功能体验(附下载)

火绒作为国内杀毒软件的一股清流&#xff0c;相信很多电脑爱好者都使用火绒软件作为自己的电脑杀毒软件&#xff0c;火绒杀毒软件的最大特点是软件没有弹窗广告、电脑杀毒可靠、完全免费使用、支持拦截烦人的弹窗广告。今天主要给大家介绍火绒官方内测了一款电脑应用商店独立软…

RK3588平台开发系列讲解(安卓篇)Android12 获取 root 权限

文章目录 一、关闭 selinux二、注释用户组权限检测三、su 文件默认授予 root 权限沉淀、分享、成长,让自己和他人都能有所收获!😄 📢获取Android设备的root权限是指取得超级用户(root用户)的权限,使得用户可以对系统进行更广泛的修改和操作。但需要注意,获取root权限…

VMware Workstation Pro各版本下载安装教程

VMware Workstation Pro下载 打开浏览器&#xff0c;输入VMware Workstation Pro 找到VMware Workstation Pro官网并点击进入&#xff0c;官网地址&#xff1a;https://www.vmware.com/cn/products/workstation-pro.html 进入官网首页后可以下载最新版本的VMware Workstation P…

【JAVA-Day21】序列化和反序列化,学会Java的编解码方法

标题序列化和反序列化&#xff0c;学会Java的编解码方法 序列化和反序列化&#xff0c;学会Java的编解码方法摘要引言一、什么是序列化1.1 序列化的过程 二、什么是反序列化2.1 反序列化的过程 三、为什么要进行序列化和反序列化3.1 主要目的3.2 应用场景 四、总结参考资料 博主…

linux-gic中断分析

linux-gic中断分析 这里主要分析 linux kernel 中 GICv3 中断控制器的代码(drivers/irqchip/irq-gic-v3.c)。 一、设备树 先来看下中断控制器的设备树信息&#xff1a; gic: interrupt-controller3400000 {compatible "arm,gic-v3";#interrupt-cells <3>;…

【pytest】conftest.py使用

1. 创建test_project 目录 test_project/sub/test_sub.py def test_baidu(test_url):print(fsub {test_url}) test_project/conftest.py 设置钩子函数 只对当前目录 和子目录起作用 import pytest #设置测试钩子函数 pytest.fixture() def test_url():return "http…

性能测试-性能测试的标准依据和价值(1)

性能测试的依据 国际标准化组织ISO/IEC JTC1/SC7/WG6开展了软件质量度量和评价的标准化工作&#xff0c;制定了ISO/IEC 25000 SQuaRE系列国际标准。 GB/T 25000.1—2021《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第1部分&#xff1a;SQuaRE指南》便是采纳ISO/IEC 25…