当前位置: 首页 > 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
然后告诉了你区别 可以说 非常只能了
在这里插入图片描述

http://www.lryc.cn/news/243027.html

相关文章:

  • react等效memo的方法
  • 2023年亚太杯数学建模A题解题思路(*基于OpenCV的复杂背景下苹果目标的识别定位方法研究)
  • 【机器学习】聚类(三):原型聚类:高斯混合聚类
  • 线上ES集群参数配置引起的业务异常案例分析
  • 【Docker】Docker 仓库管理和Docker Dockerfile
  • 面试必问:如何快速定位BUG?BUG定位技巧及N板斧!
  • 力扣114. 二叉树展开为链表(java,用树模拟链表)
  • 学生成绩管理系统(python实现)
  • 【Leetcode合集】1410. HTML 实体解析器
  • 04-React脚手架 集成Axios
  • 时序预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost时间序列预测
  • 【nlp】3.6 Tansformer模型构建(编码器与解码器模块耦合)
  • 【【Linux系统下常用指令学习 之 二 】】
  • Git-将指定文件回退到指定版本
  • docker环境安装
  • 【Java】智慧工地云平台源码(APP+SaaS模式)
  • 2016年11月10日 Go生态洞察:七年的Go语言旅程
  • 深入了解Java中SQL优化的关键技巧与实践
  • 6.3.WebRTC中的SDP类的结构
  • ArcGis如何用点连线?
  • 自定义精美商品分类列表组件 侧边栏商品分类组件 category组件(适配vue3)
  • 造一个float类型二维矩阵,并将二维矩阵存快速储到一个float*中(memcpy)
  • python通过继承、组合、委托组织类
  • OSG粒子系统与阴影-自定义粒子系统示例<1>(4)
  • 激活函数与其导数:神经网络中的关键元素
  • 微信公众号对接获取用户openid预约项目心路全历程
  • 大中小协作 共筑科学梦——华中科技大学附属花城中学举办首届科技节
  • ElasticSearch之Health API
  • 图的建立基本操作
  • 影响语音芯片识别率的因素概述