SpringBoot发送虚拟请求~
1、创建一个测试用的TestController
@RestController
public class TestController {
@GetMapping("/test")
public String test() {
System.out.println("TestController ... ");
return "test";
}
}
2、编写一个测试类用来发送虚拟请求
package com.qbb;
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;
import org.springframework.test.web.servlet.result.StatusResultMatchers;
/**
* @author startqbb (个人博客:https://www.cnblogs.com/qbbit)
* @date 2023-02-02 23:24
* @tags 我爱的人在很远的地方, 我必须更加努力
*/
// 测试使用WEB环境启动
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
// 开启虚拟MVC调用
@AutoConfigureMockMvc
public class WebTest {
/**
* @param mockMvc 注入虚拟MockMvc对象
*/
@Test
public void test1(@Autowired MockMvc mockMvc){
try {
// 创建虚拟请求
MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/test1");
// 执行请求
ResultActions perform = mockMvc.perform(builder);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Test
public void test2(@Autowired MockMvc mockMvc){
try {
// 创建虚拟请求
MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/test1");
// 执行请求
ResultActions perform = mockMvc.perform(builder);
// 设置预期值
StatusResultMatchers status = MockMvcResultMatchers.status();
ResultMatcher ok = status.isOk();
// 预期值和真实值比较
perform.andExpect(ok);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Test
public void testBody(@Autowired MockMvc mockMvc){
try {
// 创建虚拟请求
MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/test");
// 执行请求
ResultActions perform = mockMvc.perform(builder);
// 设置预期值
ContentResultMatchers content = MockMvcResultMatchers.content();
ResultMatcher body = content.string("test");
// 预期值和真实值比较 响应体匹配
perform.andExpect(body);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
结果

SpringBoot发送虚拟请求~的更多相关文章
- Angular2发送HTTP请求SpringBoot后台跨域问题解决
Angular通过http发送post请求至SpringBoot的Controller,由于同源策略的保护,遇到跨域问题: • 源(origin)就是协议(http).域名(localhost)和端口 ...
- springboot成神之——websocket发送和请求消息
本文介绍如何使用websocket发送和请求消息 项目目录 依赖 DemoApplication MessageModel WebConfig WebSocketConfig HttpHandshak ...
- 使用AJAX技术发送异步请求,HTTP服务端推送
使用AJAX技术发送异步请求 什么是AJAX AJAX指一步Javascript和XML(Asynchronous JavaScript And XML),它是一些列技术的组合,简单来说AJAX基于X ...
- Angular13 Angular2发送PUT请求在后台接收不到参数
1 问题描述 利用angular2发送PUT请求时,后端接收不到参数 2 问题诊断 前段参数格式问题,后端获取参数的方法不对 3 解决问题 angular前段:将所有参数编程JSON字符串形式 spr ...
- Ajax发送简单请求案例
所谓简单请求,是指不包含任何参数的请求.这种请求通常用于自动刷新的应用,例如证券交易所的实时信息发送.这种请求通常用于公告性质的响应,公告性质的响应无需客户端的任何请求参数,而是由服务器根据业务数据自 ...
- Java发送Http请求并获取状态码
通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断. try { URL u = new URL("http://10.1.2.8:8080/fqz/page ...
- AngularJs的$http发送POST请求,php无法接收Post的数据解决方案
最近在使用AngularJs+Php开发中遇到php后台无法接收到来自AngularJs的数据,在网上也有许多解决方法,却都点到即止.多番摸索后记录下解决方法:tips:当前使用的AngularJ ...
- Ajax发送POST请求SpringMVC页面跳转失败
问题描述:因为使用的是SpringMVC框架,所以想使用ModelAndView进行页面跳转.思路是发送POST请求,然后controller层中直接返回相应ModelAndView,但是这种方法不可 ...
- 使用HttpClient来异步发送POST请求并解析GZIP回应
.NET 4.5(C#): 使用HttpClient来异步发送POST请求并解析GZIP回应 在新的C# 5.0和.NET 4.5环境下,微软为C#加入了async/await,同时还加入新的Syst ...
- 在发送ajax请求时加时间戳或者随机数去除js缓存
在发送ajax请求的时候,为了保证每次的都与服务器交互,就要传递一个参数每次都不一样,这里就用了时间戳 大家在系统开发中都可能会在js中用到ajax或者dwr,因为IE的缓存,使得我们在填入相同的值的 ...
随机推荐
- Set Concept
集合(Set)就是一种用来装事物的容器(或者称为结构),它所装的东西叫元素.集合这个容器的逻辑性很强,可以说是现在比较严谨的工具. 集合里的元素,它们可以是任何类型的数学对象:数字.符号.变量.空间中 ...
- 《SQL与数据库基础》01. SQL概述 · 分类
目录 SQL概述 SQL语法特征 SQL分类 本文以 MySQL 为例 SQL概述 SQL(Structured Query Language),结构化查询语言,用于访问和处理数据库的标准的计算机语言 ...
- QA|Pycharm中的git分支提交冲突问题和解决|GIT
前天,Pycharm中的git分支提交冲突了,原因是我PC上改了文件没有提交,笔记本又本地改代码,笔记本提交时就出现报错:提交拒绝,但pull也被拒绝,网上试了rebase等方法,均没得到解决,最终自 ...
- Unity 游戏开发、03 基础篇 | C#初级编程
C#初级编程 https://learn.u3d.cn/tutorial/beginner-gameplay-scripting 8 Update 和 FixedUpdate Update(不是按固定 ...
- 两个例子带你入门 Disruptor
Disruptor 是英国外汇交易公司 LMAX 开发的一个高性能队列.很多知名开源项目里,比如 canal .log4j2. storm 都是用了 Disruptor 以提升系统性能 . 这篇文章, ...
- Redis 不同插入方法的性能对比
1. 测试目的 对比 Redis 不同插入方法(插入同时能设置过期时间)的性能区别. 2. 测试数据 key:SMGP_ value:JSON数据 { "spName":" ...
- SQL运用full join连接,decode函数,nvl函数进行列转行
背景说明:full join连接,decode函数,nvl函数,结合生产背景理解更深刻: test_A表是现金业主某时间段的收益:test_B表是非现金业主某时间段的收益:对于业主,test_A表与t ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-19-处理鼠标拖拽-中篇
1.简介 上一篇中,主要是介绍了拖拽的各种方法的理论知识以及实践,今天宏哥讲解和分享一下划取字段操作.例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能. 2.划取字段操作 划取字段操 ...
- 深入探讨I/O模型:Java中的阻塞和非阻塞和其他高级IO应用
引言 I/O(Input/Output)模型是计算机科学中的一个关键概念,它涉及到如何进行输入和输出操作,而这在计算机应用中是不可或缺的一部分.在不同的应用场景下,选择正确的I/O模型是至关重要的,因 ...
- 传纸条(lgP1006)
终于有一道一遍过的题了/kk/kk 发现前几道都很难(总之暂时没想出来)就先把这个写了. 其实这题四维 dp 好像能过,但既然写了就写正解吧... 因为路径正着走和反着走都是一样的,所以问题就是求从左 ...