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

java springboot测试类鉴定虚拟MVC运行值与预期值是否相同

好 上文java springboot在测试类中构建虚拟MVC环境并发送请求中 我们模拟的MVC环境 发送了一个请求
我们这次需要 对比 预期值和运行值是否一直
这里 我们要用一个 MockMvcResultMatchers
他提供了非常多的校验类型 例如 请求有没有成功 有没有包含请求头信息 等等
在这里插入图片描述
这里 我们做简单一点 就验证是不是成功了

我们直接将代码写成这样

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.MockMvcResultMatchers;
import org.springframework.test.web.servlet.result.StatusResultMatchers;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
public class WebDomApplicationTests {

    @Test
    void contextLoads(@Autowired MockMvc mvc) throws Exception {
        MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/TextWeb");
        ResultActions action = mvc.perform(builder);
        StatusResultMatchers status = MockMvcResultMatchers.status();
        ResultMatcher ok = status.isOk();
        action.andExpect(ok);
    }

}

我们先通过mvc.perform(builder);
拿到请求的东西 然后 通过andExpect 看看他与我们定义的ok接到的值是否一直
然后 我们运行代码
在这里插入图片描述
这里 其实体验不怎么好 因为成功之后 他就直接通过了 看不出什么效果
在这里插入图片描述
这里 我们把路径改一改不存在的 创造一个错误
我们在后面加个 1 让这个 地址 它找不到
在这里插入图片描述
然后 我们再次运行 这里的错误信息和异常就都出来了
在这里插入图片描述
最关键的还是我们这个地方 它告诉你 预计是200 但实际是 404
至于 200和404 这个再基础不过 看不懂真的有点说不过去了
在这里插入图片描述


http://www.kler.cn/news/149432.html

相关文章:

  • AI模特换装的前端实现
  • 大数据学习(26)-spark SQL核心总结
  • 鸿蒙应用开发之打包与上架
  • 天软高频时序数据仓库
  • Ubuntu系统Springboot项目Nginx安装(编译安装方式)
  • echarts点击事件
  • vue2+el-select实现分页加载更多功能
  • 插入或更新学生信息的 SQL 语句
  • 【问题解决!】OSError: [WinError 1455] 页面文件太小,无法完成操作。Error loading “c:\Anaconda3\lib
  • 在Windows WSL (Linux的Windows子系统)上运行的Ubuntu如何更改主机名
  • 5W2H分析法
  • git分支拉取时,提示冲突
  • SAP_ABAP_基础编程_DESCRIBE FIELD_获取数据对象的属性
  • 2.ORB-SLAM3中如何从二进制文件中加载多地图、关键帧、地图点等数据结构
  • Leetcode 1727. 具有重排的最大子矩阵
  • RPC之GRPC:什么是GRPC、GRPC的优缺点、GRPC使用场景
  • web:NewsCenter
  • 芯片设计中的DFX
  • skywalking告警UI界面有告警信息,webhook接口没有回调,400错误
  • 【100个Cocos实例】完蛋,你看我在刮刮乐中刮到了什么?
  • 【Java基础】-- Java包(package)命名规范
  • 选择更灵活的设计工具:SOLIDWORKS 软件网络版与单机版的比较
  • [C++][原创]VSCode C++怎么让运行的时候弹出cmd窗口,而不是在VSCode调试输出
  • Rust之构建命令行程序(一):接受命令行参数
  • 算法之插入排序及希尔排序(C语言版)
  • C++ day42背包理论基础01 + 滚动数组
  • source: command not found错误的解决方法
  • 学习知识随笔(Django)
  • 机器学习笔记 - 基于百度飞桨PaddleSeg的人体分割
  • Douuble 4 VR智能互动系统为酒店管理专业提供虚拟场景实训