首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringBoot对单元测试支持、常用单元测试功能使用实例

spring-boot-starter-test 包 含类库 JUnit:一个 Java 语言单元测试框架。...依赖注入优点之一就是可以轻松使用单元测试。这种方式可以直接通过 new 来创建对象,而不需要涉及 Spring。当然,也可以通过模拟对象来替换真实依赖。...在上面章节中实现了 Service 层单元测试示例,而当对 Controller 层进行单元测试时,便需要使用模拟对象,这里采用 spring-test 包中提供 MockMvc。...因此,只需通过@Autowired 注入 MockMvc 即可。 MockMvc 对象也可以通过接口 MockMvcBuilder 实现类来获得。...MockMvc 对象创建默认使用 DefaultMockMvcBuilder,后面章节会详细介绍这一过程。

1.7K30

Spring MVC服务端单元测试工具MockMvc

单元测试方式 浏览器测试;当我们开发好一个接口,:/user/1,那我们就可以在浏览器中输入:http://127.0.0.1/order/1 看是否能得到我们期望结果;这种方式特点就是简单,缺点是只能测试...GET接口; PostMan;市面上很多类似的工具,功能强大,简单好用;缺点是可配置性较弱; MockMvcSpring MVC服务端测试工具,功能强大,灵活性更强,可配置性更强,更有利于调整或成功之后功能确认....andExpect(MockMvcResultMatchers.status().isOk()) // 指定响应预期内容 // 要求返回对象用户名为:zhangsan...MockMvcRequestBuilders 请求构建者对象 get、post、put、delete分别表示发送对应Method请求,参数为对应接口地址; MockMvcRequestBuilders.get...("/user/1") param表示要传递请求参数; param("username","zhangsan") contentType 指定请求数据数据格式;: MediaType.APPLICATION_JSON_UTF8

91530
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    小白搞 Spring Boot单元测试

    内容是:Spring Boot 中单元测 前言 何为单元测试 单元测试目的: 测试当前所写代码是否是正确, 例如输入一组数据, 会输出期望数据; 输入错误数据, 会产生错误异常等....在单元测试中, 我们需要保证被测系统是独立(SUT 没有任何 DOC), 当被测系统通过测试时, 那么它在任何环境下都是能够正常工作. 编写单元测试时, 仅仅需要关注单个类就可以了....对于网络请求进行测试情形多见于应用Controller层。Spring测试框架提供MockMvc对象,可以在不需要客户端-服务端请求情况下进行Web测试....通过MockMvcBuilders工具,创建一个MockMvc对象。...Mock 中文译为仿制,模拟,虚假。对于测试框架来说,构造出一个模拟/虚假对象,使我们测试能顺利进行下去。 Mockito 是当前最流行 单元测试 Mock 框架。

    4.6K10

    第三十五章:SpringBoot与单元测试小秘密

    这个类是Spring为我们提供模拟SpringMVC请求实例类,该类则是由MockMvcBuilders通过WebApplicationContext实例进行创建,初始化MockMvc实例我们可以看下...2 MockMvcRequestBuilders该抽象类则是可以构建多种请求方式,:Post、Get、Put、Delete等常用请求方式,其中参数则是我们需要请求本项目的相对路径,/则是项目请求根路径...4 andReturn方法则是在发送请求后需要获取放回时调用,该方法返回MvcResult对象,该对象可以获取到返回视图名称、返回Response状态、获取拦截请求拦截器集合等。...5 我们在这里就是使用到了第4步内MvcResult对象实例获取MockHttpServletResponse对象从而才得到Status状态码。...另外一种则是在客户端采用MockMvc方式测试Web请求,根据传递不用参数以及请求返回对象反馈信息进行验证测试。

    1.4K50

    Spring Boot2.x系列教程(六)类型安全属性配置详解

    Spring中使用@Value可以对单个属性进行注入配置,但如果有很多配置属性或者配置属性本身拥有层级结构时,Spring Boot提供了基于类型安全配置方式。...就像上面说,如果在实践过程中如果有很多配置,通过@Value逐一配置不仅麻烦,还不太符合面向对象编程思想。根据不同情况,可适当将对应配置文件根据业务进行分组,集中管理。...@ConfigurationProperties加载properties文件内配置,通过prefix属性指定配置文件中定义properties配置统一前缀。...mockMvc; @Test void getInfo() throws Exception { mockMvc.perform(MockMvcRequestBuilders.get("/...Bean,或Bean中嵌套Bean校验等均可在此基础上进行拓展,基本使用方法都是一致

    72420

    SpringBoot - 应用程序测试方案

    AssertJ:AssertJ 是一款强大流式断言工具,它需要遵守 3A 核心原则, Arrange(初始化测试对象或准备测试数据)——> Actor(调用被测方法)——>Assert(执行断言)。...虽然这我们指定是 SpringRunner.class,实际上,SpringRunner 就是 SpringJUnit4ClassRunner 简化,它允许 JUnit 和 Spring TestContext...在测试过程中,我们通常关注测试对象本身功能和行为,而对测试对象涉及一些依赖,仅仅关注它们与测试对象之间交互(比如是否调用、何时调用、调用参数、调用次数和顺序,以及返回结果或发生异常等),并不关注这些被依赖对象如何执行这次调用具体细节...因此,Mock 机制就是使用 Mock 对象替代真实依赖对象,并模拟真实场景来开展测试工作。 使用 Mock 对象完成依赖关系测试示意图如下所示: ?...---- 使用 @AutoConfigureMockMvc 注解 在使用 @SpringBootTest 注解场景下,如果我们想使用 MockMvc 对象,那么可以引入 @AutoConfigureMockMvc

    1.4K30

    SpringBoot基础之MockMvc单元测试

    SpringBoot创建Maven项目中,会默认添加spring-boot-starter-test依赖。在《5分钟快速上手SpringBoot》中编写单元测试使用了MockMvc。...本篇文章就围绕MockMvc在SpringBoot中使用进行讲解。 什么是Mock 在面向对象程序设计中,模拟对象(英语:mock object)是以可控方式模拟真实对象行为对象。...使用Mockito一般分三个步骤:1、模拟测试类所需外部依赖;2、执行测试代码;3、判断执行结果是否达到预期; MockMvc MockMvc是由spring-test包提供,实现了对Http请求模拟...主要有两个实现:StandaloneMockMvcBuilder和DefaultMockMvcBuilder,分别对应两种测试方式,独立安装和集成Web环境测试(并不会集成真正web环境,而是通过相应...MockMvc实例化时需在SpringBoot启动类上添加组件扫描package指定,否则会出现404。

    11.7K21

    SpringBoot单元测试

    Spring Boot中引入单元测试很简单,添加如下依赖(spring-boot-starter-test依赖): org.springframework.boot...三、Spring Boot引入MockMvc概念 什么是Mock? 在面向对象程序设计中,模拟对象(英语:mock object)是以可控方式模拟真实对象行为对象。...为什么使用Mock对象? 使用模拟对象,可以模拟复杂、真实对象行为。如果在单元测试中无法使用真实对象,可采用模拟对象进行替代。...MockMvc概念 MockMvc是由spring-test包提供,实现了对Http请求模拟,能够直接使用网络形式,转换到Controller调用,使得测试速度快、不依赖网络环境。...优点 2: assertThat 使用了 Hamcrest Matcher 匹配符,用户可以使用匹配符规定匹配准则精确指定一些想设定满足条件,具有很强易读性,而且使用起来更加灵活。

    95020

    【保姆级教程】SpringBoot单元测试,文末介绍Postman基本使用

    Spring Boot中引入单元测试很简单,添加如下依赖(spring-boot-starter-test依赖): org.springframework.boot...写单元测试两个动机: 保证或验证实现功能。 保护已经实现功能不被破坏。 三、Spring Boot引入MockMvc概念 1. 什么是Mock?...为什么使用Mock对象? 使用模拟对象,可以模拟复杂、真实对象行为。如果在单元测试中无法使用真实对象,可采用模拟对象进行替代。 3....MockMvc概念 MockMvc是由spring-test包提供,实现了对Http请求模拟,能够直接使用网络形式,转换到Controller调用,使得测试速度快、不依赖网络环境。...优点 2:assertThat 使用了 Hamcrest Matcher 匹配符,用户可以使用匹配符规定匹配准则精确指定一些想设定满足条件,具有很强易读性,而且使用起来更加灵活。

    2K10

    【保姆级教程】Spring Boot 单元测试

    Spring Boot中引入单元测试很简单,添加如下依赖(spring-boot-starter-test依赖): org.springframework.boot...为什么使用Mock对象? 使用模拟对象,可以模拟复杂、真实对象行为。如果在单元测试中无法使用真实对象,可采用模拟对象进行替代。 \3....MockMvc概念 MockMvc是由spring-test包提供,实现了对Http请求模拟,能够直接使用网络形式,转换到Controller调用,使得测试速度快、不依赖网络环境。...优点 2: assertThat 使用了 Hamcrest Matcher 匹配符,用户可以使用匹配符规定匹配准则精确指定一些想设定满足条件,具有很强易读性,而且使用起来更加灵活。...”易读语法模式(:assertThat(x,is(3));),使得代码更加直观、易读。

    29.2K86

    保姆级教程:Spring Boot 单元测试

    Spring Boot中引入单元测试很简单,添加如下依赖(spring-boot-starter-test依赖):   org.springframework.boot...写单元测试两个动机: 保证或验证实现功能。 保护已经实现功能不被破坏。 三、Spring Boot引入MockMvc概念 什么是Mock?...使用模拟对象,可以模拟复杂、真实对象行为。如果在单元测试中无法使用真实对象,可采用模拟对象进行替代。...MockMvc概念 MockMvc是由spring-test包提供,实现了对Http请求模拟,能够直接使用网络形式,转换到Controller调用,使得测试速度快、不依赖网络环境。...优点 2: assertThat 使用了 Hamcrest Matcher 匹配符,用户可以使用匹配符规定匹配准则精确指定一些想设定满足条件,具有很强易读性,而且使用起来更加灵活。

    2.9K20

    Spring实战》读书笔记-第5章 构建Spring Web应用程序

    我们希望DispatcherServlet加载包含Web组件bean,控制器、视图解析器以及处理器映射,而ContextLoaderListener要加载应用中其他bean。...如果按照这种方式配置DispatcherServlet,它只能部署到支持Servlet 3.0服务器中才能正常工作,Tomcat 7或更高版本。...Model实际上就是一个Map(可直接将Model替换为Map类),它会传递给视图,这样数据就能渲染到客户端了,当调用addAttribule()方法并且不指定key时候,那么key会根据值对象类型推断确定...当编写控制器处理器方法时,Spring MVC极其灵活。概括来讲,如果你处理器方法需要内容的话,只需将对应对象作为参数,而它不需要内容,则没有必要出现在参数列表中。...我们通过使用JSP方式,简单了解了如何为控制器编写视图。但是就Spring MVC视图来说,它并不限于本章所看到简单JSP。

    1.4K30

    单元测试不止Junit,会MockMvc才是高手!

    虚拟对象就是 mock 对象。 mock 对象就是真实对象在调试期间代替品。...2、为什么使用 mock 测试 避免开发模块之间耦合 轻量、简单、灵活 3、MockMVC 介绍 基于 RESTful 风格 SpringMVC 测试,我们可以测试完整 Spring MVC 流程...2)MockMvcBuilders 负责创建 MockMvcBuilder 对象,有两种创建方式: standaloneSetup(Object... controllers):通过参数指定一组控制器,...webAppContextSetup(WebApplicationContext wac):指定 WebApplicationContext,将会从该上下文获取相应控制器并得到相应 MockMvc,...*和 MockMultipartHttpServletRequestBuilder*(文件上传使用),即用来 Mock 客户端请求需要所有数据。

    2K30

    Spring官网阅读(十七)Spring数据校验

    比如我们之前介绍过Spring国际化(见《Spring官网阅读(十一)》)、SpringResolvableType(见《Spring杂谈》系列文章)等等,它们都是对Java本身封装,沿着这个思路...” Java中数据校验 在学习Java中数据校验前,我们需要先了解一个概念,什么是JSR? JSR:全称Java Specification Requests,意思是Java 规范提案。...我们可以将其理解为Java为一些功能指定一系列统一规范。跟数据校验相关最新JSR为JSR 380。 Bean Validation 2.0 是JSR第380号标准。...是专门用于应用相关对象校验器。...); // 假设value将被绑定到指定对象指定字段上,并进行校验 // @since 5.1 这个方法子类需要复写 否则不能使用 default void validateValue

    1.8K51

    MyBatis初级实战之五:一对一关联查询

    内使用result子节点,将联表查询结果映射到关联对象嵌套时,association内使用select子节点,触发一次新查询; 一对一(联表) 所谓一对一,就是一个对象关联了另一个对象,例如一条..., * 从客户端来看,仅一部分path不同,因此将请求和检查封装到一个通用方法中, * 调用方法只需要指定不同那一段path * @param subPath...json对象,就是user表数据: 一对一(嵌套) 接下来试试嵌套方式; LogMapper.xml中对应sql: <!...: @ApiOperation(value = "根据ID查找日志记录,带用户<em>对象</em>,<em>嵌套</em>查询实现", notes="根据ID查找日志记录,带用户<em>对象</em>,<em>嵌套</em>查询实现") @ApiImplicitParam...log记录关联一条user记录,下一篇文章,咱们学习一对多关联,一个user有多条log记录;

    1.1K40

    Spring实战5-基于Spring构建Web应用主要内容

    max表示要返回Spittle对象最大ID;count表示指定需要返回Spittle对象数量。...首先设置好SpitterRepository对象、控制器和MockMvc对象,然后构建一个POST请求——/spitter/register,且该请求会携带四个参数,用于模拟submit提交动作。...在处理POST请求最后一般需要利用重定向到一个新页面,以防浏览器刷新引来重复提交。在这个例子中我们重定向到/spitter/jbaure,新添加用户个人信息页面。...最后,该测试用例还需要验证模拟对象mockRepository确实用于保存表单提交数据了,save()方法之上调用了一次。...processRegistration()以Spitter对象为参数,Spring利用POST请求所携带参数初始化Spitter对象

    2.5K20
    领券