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

7、单元测试--测试RestFul 接口

单元测试–测试RestFul 接口

– 测试用例类使用@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)修饰。
– 测试用例类会接收容器依赖注入TestRestTemplate这个实例变量。
– 测试方法可通过TestRestTemplate来调用RESTful接口的方法。

测试用例应该定义在和被测试类位于同一个包位置。


// 测试用例的位置要和被测试的位于同一个包路径位置。
//参数webEnvironment web环境,RANDOM_PORT表示随机端口
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class BookControllerTest {//测试用例类会接收容器依赖注入TestRestTemplate这个实例变量@Autowiredprivate TestRestTemplate testRestTemplate;//注意点:测试的时候,对应的方法的参数列表要加上注解@RequestBody,不然这个book实体传到方法那边,方法无法接收,会变成null。//单次测试@Testpublic void testAddBookRestful(){//生成测试数据Book book = new Book("mysql", new BigDecimal(100), "ljh");//参数1:访问的路径,参数2:测试的数据,参数3:获取服务器响应的数据类型,就是方法的返回值类型Book b = testRestTemplate.postForObject("/books", book, Book.class);//断言 参数1:期望值 , 参数2:实际值Assertions.assertEquals("mysql",b.getName());Assertions.assertEquals(BigDecimal.valueOf(100),b.getPrice());Assertions.assertEquals("ljh",b.getAuthor());}//参数化测试,可以让方法进行多次测试@ParameterizedTest //允许测试方法接收参数进行测试,和注解 @CsvSource 一起使用,@CsvSource注解用来写参数数据//参数是一个数组,数组里面的每一个元素就是方法的参数@CsvSource({"书籍A,100,ljh","书籍B,110,ljh","书籍C,120,ljh"})public void testAddBookRestful02(String name,BigDecimal price,String author){//生成测试数据Book book = new Book(name, price, author);//测试Book b = testRestTemplate.postForObject("/books", book, Book.class);//断言Assertions.assertEquals(name,b.getName());Assertions.assertEquals(price,b.getPrice());Assertions.assertEquals(author,b.getAuthor());}
}

解释:
注意点1:
涉及注解:@RequestBody
测试的时候,被测试的方法的参数列表要加上注解@RequestBody,不然这个book实体传到被测试方法那边,方法的参数无法接收,会变成null。
在这里插入图片描述

单次测试添加图书:

在这里插入图片描述

多次测试添加图书:

涉及到注解:
1、@ParameterizedTest 表示这个测试是参数化测试,junit5 才有的注解
//允许测试方法使用参数进行测试,
和注解 @CsvSource 一起使用,@CsvSource注解用来写参数数据

2、@CsvSource({“书籍A,100,ljh”,“书籍B,110,ljh”,“书籍C,120,ljh”})
//参数是一个数组,数组里面的每一个元素就是方法的参数,每个元素里面的多个参数用逗号隔开
在这里插入图片描述

测试查询方法

在这里插入图片描述

测试删除

涉及的注解:
@ParameterizedTest //表明这个测试方法属于参数测试
@ValueSource(ints = {76, 77, 78}) //具体参数
在这里插入图片描述

相关文章:

7、单元测试--测试RestFul 接口

单元测试–测试RestFul 接口 – 测试用例类使用SpringBootTest(webEnvironment WebEnvironment.RANDOM_PORT)修饰。 – 测试用例类会接收容器依赖注入TestRestTemplate这个实例变量。 – 测试方法可通过TestRestTemplate来调用RESTful接口的方法。 测试用例应该定义在和被测…...

国家留学基金委(CSC)|发布2024年创新型人才国际合作培养项目实施办法

2023年7月28日,国家留学基金委(CSC)发布了《2024年创新型人才国际合作培养项目实施办法》,在此知识人网小编做全文转载。详细信息请参见https://www.csc.edu.cn/chuguo/s/2648。 2024年创新型人才国际合作培养项目实施办法 第一章…...

找好听的配乐、BGM就上这6个网站,免费商用。

推荐几个音乐素材网站给你,各种类似、风格的都有,而且免费下载,还可以商用,建议收藏起来~ 菜鸟图库 https://www.sucai999.com/audio.html?vNTYxMjky 站内有上千首音效素材,网络流行的音效素材这里都能找到&#xf…...

【前端知识】React 基础巩固(三十五)——ReduxToolKit (RTK)

React 基础巩固(三十五)——ReduxToolKit (RTK) 一、RTK介绍 Redux Tool Kit (RTK)是官方推荐的编写Redux逻辑的方法,旨在成为编写Redux逻辑的标准方式,从而解决上面提到的问题。 RTK的核心API主要有如下几个: confi…...

android Android Studio Giraffe | 2022.3.1 版本Lombok不兼容 解决方案

android Android Studio Giraffe | 2022.3.1 版本Lombok不兼容 解决方案 1.查看当前的android studio 版本 Android Studio Giraffe | 2022.3.1 Build #AI-223.8836.35.2231.10406996, built on June 29, 2023 2.打开 idea 官网下载页面 idea下载历史版本 找到对应的版本编号…...

前端框架学习-基础前后端分离

前端知识栈 前端三要素:HTML、CSS、JS HTML 是前端的一个结构层,HTML相当于一个房子的框架,可类比于毛坯房只有一个结构。CSS 是前端的一个样式层,有了CSS的装饰,相当于房子有了装修。JS 是前端的一个行为层&#xff…...

数据中心电子电气设备常见的五种地线种类和做法

数据中心机房计算机系统的集成化程度很高,其正常工作对环境的要求很严格。接地,是指电力系统和电气装置的中性点、电气设备的外露导电部分和装置外导电部分经由导体与大地相连。其作用主要是防止人身遭受电击、设备和线路遭受损坏、预防火灾和防止雷击、…...

重学C++系列之STL库

一、什么是STL库 STL是“Standard Template Library”的缩写,中文翻译为“标准模板库”。CSTL是一套功能强大的C模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如字符串操作、链表、队…...

JAVA SE -- 第十四天

(全部来自“韩顺平教育”) 泛型 一、泛型 1、基本介绍 ①泛型又称参数类型,是Jdk5.0出现的新特性,解决数据类型的安全性问题 ②在类声明或实例化时只要指定好需要的具体的类型即可 ③Java泛型可以保证如果程序在编译时没有发…...

微信小程序监测版本更新

在index.js里面 不放到app.js里面是因为有登录页面,在登录页面显示更新不太友好 onShow() {const updateManager wx.getUpdateManager()// 请求完新版本信息的回调updateManager.onCheckForUpdate(res > {if (res.hasUpdate) {// 新版本下载成功updateManage…...

《Java面向对象程序设计》学习笔记——第 2 章 基本数据类型、数组和枚举类型

专栏:《Java面向对象程序设计》学习笔记...

TDesign中后台管理系统-访问后端服务

目录 1 修改后端服务地址2 解决跨域问题3 动态获取菜单4 测试后端接口5 前后端联调总结 目前我们已经搭建了TDesign的前端和express的后端,目前是两个独立的应用。通常我们需要把前后端集成在一起,TDesign已经配置了相关的信息,只需要修改后端…...

【机器学习】Gradient Descent for Logistic Regression

Gradient Descent for Logistic Regression 1. 数据集(多变量)2. 逻辑梯度下降3. 梯度下降的实现及代码描述3.1 计算梯度3.2 梯度下降 4. 数据集(单变量)附录 导入所需的库 import copy, math import numpy as np %matplotlib wi…...

ElasticSearch基础篇-Java API操作

ElasticSearch基础-Java API操作 演示代码 创建连接 POM依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sch…...

解决uniapp的tabBar使用iconfont图标显示方块

今天要写个uniapp的移动端项目&#xff0c;底部tabBar需要添加图标&#xff0c;以往都是以图片的形式引入&#xff0c;但是考虑到不同甲方的主题色也不会相同&#xff0c;使用图片的话&#xff0c;后期变换主题色并不友好&#xff0c;所以和UI商量之后&#xff0c;决定使用icon…...

UE4/5C++多线程插件制作(0.简介)

目录 插件介绍 插件效果 插件使用 English 插件介绍 该插件制作&#xff0c;将从零开始&#xff0c;由一个空白插件一点点的制作&#xff0c;从写一个效果到封装&#xff0c;层层封装插件&#xff0c;简单粗暴的对插件进行了制作&#xff1a; 插件效果 更多的是在cpp中去…...

ChatFile实现相关流程

文本上传构建向量库后台库的内容 调用上传文件接口先上传文件 存在疑问:暂时是把文件保存在tmp文件夹,定时清理,是否使用云存储 根据不同的文件类型选取不同的文件加载器加载文件内容 switch (file.mimetype) {case application/pdf:loader new PDFLoader(file.path)breakc…...

15 文本编辑器vim

15.1 建立文件命令 如果file.txt就是修改这个文件&#xff0c;如果不存在就是新建一个文件。 vim file.txt 使用vim建完文件后&#xff0c;会自动进入文件中。 15.2 切换模式 底部要是显示插入&#xff0c;是编辑模式&#xff1b; 按esc&#xff0c;底部要是空白的&#xff0…...

如何运行疑难解答程序来查找和修复Windows 10中的常见问题

如果Windows 10中出现问题&#xff0c;运行疑难解答可能会有所帮助。疑难解答人员可以为你找到并解决许多常见问题。 一、在控制面板中运行疑难解答 1、打开控制面板&#xff08;图标视图&#xff09;&#xff0c;然后单击“疑难解答”图标。 2、单击“疑难解答”中左上角的…...

程序员成长之路心得篇——高效编码诀窍

随着AIGC的飞速发展&#xff0c;程序员越来越能够感受到外界和自己的压力。如何能够在AI蓬勃发展的时代不至于落后&#xff0c;不至于被替代&#xff1f;项目的开发效率起了至关重要的作用。 首先提出几个问题&#xff1a; 如何实现高效编程?高效编程的核心在于哪里&#xff…...

3步掌控数字记忆:WeChatMsg工具让你的聊天记录不再流浪

3步掌控数字记忆&#xff1a;WeChatMsg工具让你的聊天记录不再流浪 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCh…...

DASD-4B-Thinking效果对比:在HumanEval代码生成任务中超越Qwen2.5-7B

DASD-4B-Thinking效果对比&#xff1a;在HumanEval代码生成任务中超越Qwen2.5-7B 1. 为什么这个40亿参数模型值得关注&#xff1f; 你可能已经用过不少大模型&#xff0c;但有没有遇到过这种情况&#xff1a;写一段Python函数时&#xff0c;模型直接给出答案&#xff0c;却跳…...

从汇编指令到硬件行为:深入解析Aurix Tricore Trap触发与恢复的全过程

从汇编指令到硬件行为&#xff1a;深入解析Aurix Tricore Trap触发与恢复的全过程 当我们在调试Aurix Tricore处理器的异常处理机制时&#xff0c;常常会遇到一个令人困惑的现象&#xff1a;为什么有些Trap发生后程序能够继续执行&#xff0c;而有些则会导致系统崩溃&#xff…...

5分钟轻松掌握:Magisk让Android手机获得超能力的终极指南

5分钟轻松掌握&#xff1a;Magisk让Android手机获得超能力的终极指南 【免费下载链接】Magisk The Magic Mask for Android 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk 如果你想让自己的Android手机变得更强大、更自由&#xff0c;Magisk绝对是你不可错过…...

3大核心能力解析:open_nsfw如何为企业构建智能内容安全防线

3大核心能力解析&#xff1a;open_nsfw如何为企业构建智能内容安全防线 【免费下载链接】open_nsfw yahoo/open_nsfw: 是一个由Yahoo开发的开放源代码的非成人内容过滤工具。适合用于需要过滤成人内容的网站或应用。特点是可以识别和过滤掉不适宜的内容&#xff0c;保护用户免受…...

在PC上畅玩Switch游戏:Ryujinx模拟器完全指南

在PC上畅玩Switch游戏&#xff1a;Ryujinx模拟器完全指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上体验《塞尔达传说&#xff1a;旷野之息》的震撼冒险&#xff0c;或…...

手把手教你用Llama-3.2V-11B-cot:像聊天一样轻松实现图片智能分析

手把手教你用Llama-3.2V-11B-cot&#xff1a;像聊天一样轻松实现图片智能分析 1. 引言&#xff1a;当视觉大模型遇上聊天式交互 想象一下&#xff0c;你正面对一张复杂的医学影像或工程图纸&#xff0c;需要快速理解其中的关键信息。传统方法可能需要专业培训或反复查阅资料&…...

STorM BGC V1.31硬件 + SimpleBGC源码:从零搭建三轴云台开发环境(含.Net框架避坑)

STorM BGC V1.31硬件 SimpleBGC源码&#xff1a;从零搭建三轴云台开发环境&#xff08;含.Net框架避坑&#xff09; 三轴云台作为稳定控制领域的经典应用&#xff0c;近年来在无人机、摄影设备、工业检测等领域展现出巨大潜力。STorM BGC V1.31硬件平台配合SimpleBGC开源架构&…...

Blender3mfFormat全链路应用指南:从基础操作到专业级工作流构建

Blender3mfFormat全链路应用指南&#xff1a;从基础操作到专业级工作流构建 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 基础认知&#xff1a;3MF格式与Blender插件体…...

Loop:让Mac窗口管理效率倍增的效率神器

Loop&#xff1a;让Mac窗口管理效率倍增的效率神器 【免费下载链接】Loop MacOS窗口管理 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 你是否也曾在多任务处理时&#xff0c;被杂乱无章的窗口搞得焦头烂额&#xff1f;切换应用时总要在一堆窗口中寻找目标&a…...