当前位置: 首页 > 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调用请求
这里 我们需要抛出异常
在这里插入图片描述
然后 我们右键运行
在这里插入图片描述
我们从控制台上输出可以看出接口是被调用了
在这里插入图片描述
这是个虚拟环境发起的请求

相关文章:

  • Jenkins扩展篇-流水线脚本语法
  • 【Python3】【力扣题】338. 比特位计数
  • 设备健康管理平台助力锂电企业实现可持续发展
  • 小程序开通电子发票
  • 手把手教你编写LoadRunner脚本
  • 『亚马逊云科技产品测评』活动征文|AWS 数据库产品类别及其适用场景详细说明
  • 【数据结构初阶】栈和队列
  • 机器学习实战-第5章 Logistic回归
  • uniapp开发小程序-如何判断小程序是在手机端还是pc端打开
  • C++纯虚函数和抽象类 制作饮品案例(涉及知识点:继承,多态,实例化继承抽象类的子类,多文件实现项目)
  • Vue3简单使用(一) --- 环境搭建
  • Autox.js和Auto.js4.1.1手机编辑器不好用我自己写了一个编辑器
  • B032-服务器 Tomcat JavaWeb项目 Servlet
  • python二叉树遍历_先序中序后序_深度优先广度优先_非递归先序非递归中序
  • C语言——从键盘输人三角形的三个边长 a、b、c,求出三角形的面积。
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • docker-consul
  • HomeBrew常规使用教程
  • Javascript 原型链
  • JavaScript中的对象个人分享
  • log4j2输出到kafka
  • MySQL用户中的%到底包不包括localhost?
  • Node + FFmpeg 实现Canvas动画导出视频
  • PaddlePaddle-GitHub的正确打开姿势
  • PHP 小技巧
  • PHP变量
  • springboot_database项目介绍
  • vue 配置sass、scss全局变量
  • yii2权限控制rbac之rule详细讲解
  • 复习Javascript专题(四):js中的深浅拷贝
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端面试题总结
  • 使用common-codec进行md5加密
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 因为阿里,他们成了“杭漂”
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ###项目技术发展史
  • #define 用法
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (C++17) std算法之执行策略 execution
  • (分类)KNN算法- 参数调优
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (十三)Flask之特殊装饰器详解
  • (四)JPA - JQPL 实现增删改查
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net FrameWork简介,数组,枚举