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

java springboot测试类虚拟MVC环境 匹配返回值与预期内容是否相同 (JSON数据格式) 版

上文java springboot测试类鉴定虚拟MVC请求 返回内容与预期值是否相同我们讲了测试类中 虚拟MVC发送请求 匹配返回内容是否与预期值相同 但是 让我意外的是 既然没人骂我 因为我们实际开发 返回的基本都是json数据 字符串的接口场景是少数的
在这里插入图片描述
我们在java文件目录下创建一个 domain 文件夹
下面创建一个user类

参考代码如下

package com.example.webdom.domain;public class user {private int id;private String name;public void setId(int id) {this.id = id;}public void setName(String name) {this.name = name;}public int getId() {return id;}public String getName() {return name;}
}

这边 我就设置一下最基本的 id和name 然后声明一下对应的 get set函数

这边 我们 controller 代码更改如下

package com.example.webdom.controller;import com.example.webdom.domain.user;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/TextWeb")
public class TestWeb {@GetMappingpublic user getById(){user user = new user();user.setId(1);user.setName("数据管理");System.out.println("getById is running .....");return user;}
}

这里 我们直接 new 一个 user类对象 然后 set一下他的id和name
然后接口返回这个对象出去

将测试类 代码改写如下

package com.example.webdom;import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.ResultMatcher;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.ContentResultMatchers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
public class WebDomApplicationTests {@Testvoid contextLoads(@Autowired MockMvc mvc) throws Exception {MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/TextWeb");ResultActions action = mvc.perform(builder);ContentResultMatchers content = MockMvcResultMatchers.content();ResultMatcher result = content.json("{\"id\":1,\"name\":\"数据管理\"}");action.andExpect(result);}}

这里 我们因为还是判断内容 所以依旧用content
然后 里面写一个json格式的字符串即可

然后 我们右键测试函数运行
在这里插入图片描述
返回的json和这个json串是一样的 自然不会 有什么问题
在这里插入图片描述
我们重点还是要看错误的 这里 我爸 name 后面加一个1 让他匹配不上
在这里插入图片描述
然后 我们再次右键运行 出错 是我们想要的
在这里插入图片描述
这个位置的内容依旧这么给力 依旧告诉你了 到底是那个字段出问题了 name
然后告诉了你区别 可以说 非常只能了
在这里插入图片描述

相关文章:

  • HCIA题目解析(1)
  • element-vue实现网页锁屏功能
  • webshell之Laravel和yii
  • 2023.11.25更新关于mac开发APP(flutter)的笔记与整理(实机开发一)
  • 关于easy-es的聚合问题
  • AJAX技术-04-- 跨域说明
  • 【nlp】3.3 Transformer论文复现:2. 编码器部分(掩码张量、多头注意力机制、前馈全连接层)
  • 无需API开发,有赞小程序集成广告推广系统,提升品牌曝光
  • 堆和栈的区别 重点来说一下堆和栈;堆与栈之间的联系
  • Mono 8、Mono 10、Mono 10 Packed、Mono 12、Mono 12 Packe等像素格式简介
  • .NET 使用配置文件
  • 通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(三)
  • Elasticsearch:ES|QL 查询中的元数据字段及多值字段
  • webrtc兼容android4.x的一次探索
  • 深度学习之基于Tensorflow卷积神经网络鸟类目标识别检测系统
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • HTML-表单
  • nginx 负载服务器优化
  • Selenium实战教程系列(二)---元素定位
  • Spring框架之我见(三)——IOC、AOP
  • Transformer-XL: Unleashing the Potential of Attention Models
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • - 概述 - 《设计模式(极简c++版)》
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 聚簇索引和非聚簇索引
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 前端
  • 微信公众号开发小记——5.python微信红包
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 大数据全解:定义、价值及挑战
  • ​业务双活的数据切换思路设计(下)
  • #### go map 底层结构 ####
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (39)STM32——FLASH闪存
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (转)JAVA中的堆栈
  • (转)Scala的“=”符号简介
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .Net CF下精确的计时器
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET中GET与SET的用法
  • .net中生成excel后调整宽度
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • /boot 内存空间不够
  • ::什么意思
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • [8481302]博弈论 斯坦福game theory stanford week 1