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

WebMvcTest与SpringBootTest

@SpringBootTest

@SpringBootTest注解告诉SpringBoot去寻找一个主配置类(例如带有@SpringBootApplication的配置类),并使用它来启动Spring应用程序上下文。SpringBootTest加载完整的应用程序并注入所有可能的bean,因此速度会很慢。

在这种情况下,不需要创建 MockMvc bean,可以直接通过RestTemplate进行请求测试(或者使用TestRestTemplate)。

@WebMvcTest

@WebMvcTest注解主要用于controller层测试,只覆盖应用程序的controller层,HTTP请求和响应是Mock出来的,因此不会创建真正的连接。因此需要创建 MockMvc bean进行模拟接口调用。

如果Controller层对Service层中的其他bean有依赖关系,那么需要使用Mock提供所需的依赖项。

WebMvcTest要快得多,因为我们只加载了应用程序的一小部分。

Slice 注解

有时,我们仅希望测试应用程序的一个简单片段(Slice),而不是自动配置整个应用程序。Spring Boot 1.4引入了4个新的测试注释:

@WebMvcTest - for testing the controller layer
@JsonTest - for testing the JSON marshalling and unmarshalling
@DataJpaTest - for testing the repository layer
@RestClientTests - for testing REST clients
复制代码

使用场景

@WebMvcTest用于从服务器端对Controller层进行统一测试;如果需要从客户端与应用程序交互时,应该使用@SpringBootTest做集成测试。

相关文章:

  • 第四周作业
  • Java json设置时间格式,Jackson设置时间格式,json设置单引号
  • 208道 java 高频面试题和答案
  • LOOPS
  • mysql全解
  • centos6.5更新python2.7影响pip和easy_install
  • let和const注意点
  • springMVC上传图片
  • 海信研发出一款带伸缩式摄像头的社交电视产品
  • 前端面试每日3+1(周汇总2019.05.05)
  • 关于流量带宽这些误区,你犯了吗?
  • 洛谷 P1009 阶乘之和 Label:高精度
  • Java版CRC8和CRC16工具类
  • NPOI操作excel
  • Spark核心概念
  • [iOS]Core Data浅析一 -- 启用Core Data
  • angular2开源库收集
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • exif信息对照
  • gitlab-ci配置详解(一)
  • HashMap剖析之内部结构
  • Javascript设计模式学习之Observer(观察者)模式
  • javascript数组去重/查找/插入/删除
  • Linux后台研发超实用命令总结
  • spring security oauth2 password授权模式
  • vue数据传递--我有特殊的实现技巧
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 爬虫模拟登陆 SegmentFault
  • 微信开放平台全网发布【失败】的几点排查方法
  • 《码出高效》学习笔记与书中错误记录
  • puppet连载22:define用法
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​ubuntu下安装kvm虚拟机
  • ​如何在iOS手机上查看应用日志
  • #Linux(make工具和makefile文件以及makefile语法)
  • (4)Elastix图像配准:3D图像
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (生成器)yield与(迭代器)generator
  • (十)T检验-第一部分
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET CLR基本术语
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET与 java通用的3DES加密解密方法
  • @EnableAsync和@Async开始异步任务支持
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • @WebService和@WebMethod注解的用法
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [BUUCTF]-Reverse:reverse3解析