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

java springboot在测试类中构建虚拟MVC环境并发送请求

好 上文java springboot在测试类中启动一个web环境我们在测试类中搭了一个web环境
那么 下面就要想办法弄一个接口的测试
这边 我们还是要在controller包下去创建一个 controller类 写一个访问接口
这里 我创建一个 TestWeb.java
在这里插入图片描述
这里 我们编写代码如下

package com.example.webdom.controller;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 String getById(){System.out.println("getById is running .....");return "springboot";}
}

写一个基本的 Controller 结构 放回一个字符串的接口

然后 这里 我们需要搞清楚一点: 测试类请求接口 它对 MVC的调用 是真实的调用 还是 模拟的调用?
它是模拟的调用啊

我们测试类编写代码如下

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.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
public class WebDomApplicationTests {@Testvoid contextLoads(@Autowired MockMvc mvc) throws Exception {MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/TextWeb");mvc.perform(builder);}
}

这里 我们AutoConfigureMockMvc 表示开启 MVC的虚拟调用
然后 我们测试方法中 条件装配一个参数 MockMvc 类型 MockMvc 要AutoConfigureMockMvc 开启虚拟调用后 才能使用
然后 我们通过MockMvcRequestBuilders声明一个请求对象 get类型 地址 TextWeb
然后 通过我们的参数 perform调用请求
这里 我们需要抛出异常
在这里插入图片描述
然后 我们右键运行
在这里插入图片描述
我们从控制台上输出可以看出接口是被调用了
在这里插入图片描述
这是个虚拟环境发起的请求

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

相关文章:

  • python运算符重载之字符串显示和右侧加法
  • 卷积神经网络(AlexNet)鸟类识别
  • hive 报错return code 40000 from org.apache.hadoop.hive.ql.exec.MoveTask解决思路
  • Java Web——XML
  • 【.NET Core】Task应用详解
  • convertRect:toView 方法注意事项
  • Java实现王者荣耀小游戏
  • 【黑马甄选离线数仓day04_维度域开发】
  • C# 中using关键字的使用
  • 16 redis高可用读写分离方案
  • Nginx模块开发之http handler实现流量统计(2)
  • 案例012:Java+SSM+uniapp基于微信小程序的科创微应用平台设计与实现
  • vue3+elementPlus登录向后端服务器发起数据请求Ajax
  • 存储区域
  • C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)
  • Redis-Redis高可用集群之水平扩展
  • 2023全球数字贸易创新大赛-人工智能元宇宙-4-10
  • go defer用法_类似与python_java_finially
  • Log4j2.xml不生效:WARN StatusLogger Multiple logging implementations found:
  • 【LeetCode】挑战100天 Day14(热题+面试经典150题)
  • VMware安装windows操作系统
  • 历时半年,我发布了一款习惯打卡小程序
  • 被DDOS了怎么办 要如何应对
  • 时间序列预测实战(十七)PyTorch实现LSTM-GRU模型长期预测并可视化结果(附代码+数据集+详细讲解)
  • 【免费使用】基于PaddleSeg开源项目开发的人像抠图Web API接口
  • Centos7 Python环境和yum修复
  • Ubuntu下使用protoBuf
  • AT89S52单片机
  • 数字孪生智慧校园 Web 3D 可视化监测
  • Python Web框架的三强之争:Flask、Django和FastAPI