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

MockMvc在post响应中不返回已创建的资源

MockMvc是Spring框架提供的一个用于模拟HTTP请求和响应的测试工具。它可以用于测试Web应用程序的控制器,而无需启动完整的服务器。

在post响应中不返回已创建的资源,可能是由于以下几个原因:

  1. 控制器逻辑问题:在处理POST请求时,控制器可能没有正确地将已创建的资源添加到响应中。这可能是由于控制器代码中的错误或逻辑问题导致的。
  2. 响应状态码问题:在HTTP协议中,POST请求成功创建资源后,应该返回状态码201 Created,并在响应头中包含新资源的位置信息。如果MockMvc没有正确设置响应状态码和头部信息,那么在测试中就无法获取到已创建的资源。
  3. 测试配置问题:MockMvc的配置可能存在问题,导致在测试中无法正确模拟POST请求的响应。这可能是由于测试代码中的错误配置或缺少必要的配置导致的。

为了解决这个问题,可以采取以下步骤:

  1. 检查控制器逻辑:仔细检查控制器代码,确保在处理POST请求时正确地将已创建的资源添加到响应中。可以使用断点调试或打印日志来验证控制器的逻辑是否正确。
  2. 检查响应状态码和头部信息:确保在处理POST请求时,正确设置响应状态码为201 Created,并在响应头中包含新资源的位置信息。可以使用MockMvc的断言方法来验证响应状态码和头部信息是否正确。
  3. 检查测试配置:检查MockMvc的配置是否正确,包括请求路径、请求方法、请求参数等。确保测试代码中的配置与实际情况一致,并且没有遗漏必要的配置。

如果以上步骤都没有解决问题,可以考虑使用其他测试工具或方法进行测试,例如使用RestTemplate发送真实的HTTP请求来验证POST响应中是否返回了已创建的资源。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Web MVC框架(十一) Spring Web MVC测试框架

Spring知道这是一个Web MVC测试之后,就会使用@ContextConfiguration注解配置文件来创建一个WebApplicationContext,然后我们可以将其注入到测试类。...然后要做事情就是创建MockMvc对象,我们大部分测试都要通过该对象进行。...所以如果我们不需要某个共用期望的话就只能创建一个新MockMvc对象了。...这也是一个很好学习资源。 HtmlUnit集成 MockMvc虽然好用,但是毕竟是一个假测试,它没有实际运行服务器, 也不会进行实际视图渲染、转发和重定向等操作。...我们从例子可以看到,WebClient使用方法和使用普通JavaScript操作DOM差不多。下面是创建请求代码。

97810

SpringBoot基础之MockMvc单元测试

SpringBoot创建Maven项目中,会默认添加spring-boot-starter-test依赖。《5分钟快速上手SpringBoot》编写单元测试使用了MockMvc。...本篇文章就围绕MockMvcSpringBoot使用进行讲解。 什么是Mock 面向对象程序设计,模拟对象(英语:mock object)是以可控方式模拟真实对象行为假对象。...MockMvcBuilders提供了对应创建方法standaloneSetup方法和webAppContextSetup方法,使用时直接调用即可。...MockMvc实例化时需SpringBoot启动类上添加组件扫描package指定,否则会出现404。...,添加结果处理器,比如示例打印;andReturn,返回验证成功后MvcResult,用于自定义验证/下一步异步处理。

11.2K21

Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)结合MockMvc进行服务端单元测试

MockMvc,及controller控制层单元测试,相关代码上传,可自行下载。...我github地址 为什么使用MockMvc? 可能我们测试控制层代码都是启动服务器,浏览器输入URL,然后开始测试是否达到预期效果,发生错误的话,修改相关代码并重启服务器再次进行测试。...其中缺点也挺明显浏览器输入URL地址,如果是GET请求还好,POST请求或者DELETE请求怎么办?...MockMvc单元测试实例 MockMvc测试过程: 1、创建请求 2、设置参数(这一步其实可以设置很多参数,MockMvc提供了丰富方法,但是本例只是简单参数设置,因为方法都较简单,并没有复杂调用...测试代码test包,也已经传到github上,可以下载到本地运行测试。

62040

SpringBoot单元测试

SpringBoot单元测试 一、 单元测试概念 概念: 单元测试(unit testing),是指对软件最小可测试单元进行检查和验证。Java单元测试最小单元是类。...三、Spring Boot引入MockMvc概念 什么是Mock? 面向对象程序设计,模拟对象(英语:mock object)是以可控方式模拟真实对象行为假对象。...(7) ResultActions.andReturn表示执行完成后返回相应结果。...四、Service层单元测试 第一步: Spring Boot单元测试类写在src/test/java目录下,你可以手动创建具体测试类,也可以通过IDEA自动创建测试类,如下图:(注:点选并打开相应代码界面...,程序员相信程序某个特定点该表达式值为真。

87820

Restful API详解

Level 2:使用HTTP方法进行不同操作,使用HTTP状态码来表示不同结果。 Level 3:使用超媒体,资源表达包含了链接信息。需要注意是,我们实际工作,并没有达到这个级别。...@PostMapping:这个注解是@RequestMapping变体,可以接收Post请求方式,RestFul处理创建资源请求。...Restful API测试用例 我们实际开发,需要对我们接口进行测试,确保我们后端接口可用,这时我们启动整个项目的情况下,可以利用到spring测试框架辅助我们开发。...>org.springframework.boot 然后就可以我们项目工程test目录下创建我们测试用例了,如: // 如何运行测试用例 @RunWith...某一些请求返回JSON,我们并不希望返回某些字段,而在另一些请求需要返回某些字段。

2.2K30

RESTful API,你真理解了吗?

user/query,通过url就可以知道当前接口适用于查询操作; RESTful APIurl表示资源;如上图接口地址,多次出现/user/1;/user/1表示着用户ID为1这个用户资源...,1000个用户,就有1000个请求地址,也就对应着1000个资源;根据url地址,我们没有办法知道当前接口操作是什么;具体接口功能是通过这个接口请求方式(method)来进行标识;如同为/user.../1资源: Method是GET时候,标识就是查询id为1用户; Method是PUT时候,就是修改; Method是DELETE时就是删除这个资源了; SpringBoot中用于定义RESTful...@PageableDefaule 指定分页参数默认值 @PathVariable 将path变量映射到java方法参数;如GetMapping("/user/{id}"),当请求/user/1时候...().isOk()) // 指定响应预期内容 // 要求返回对象用户名为:zhangsan .andExpect(MockMvcResultMatchers.jsonPath

35130

SpringMvc 之MockMvc帮我们解决了什么问题

Spring 是一个用于创建企业应用程序流行 Java 应用程序框架。Mockmvc 被定义为服务器端 springmvc 测试主要入口点。...Home ()方法返回具有单个属性视图,message ()方法返回纯文本消息。我们测试,我们测试这两种方法。 index.html <!..., 部署到web server 容器里, 且需要包含servlet, 启动web server, 如果你controller 依赖项目组其他成员jar包或者其他, 你还要和他同一环境里进行联调,...spring开发,可以使用Spring自带MockMvc这个类进行Mock测试。...(对返回数据进行判断); andReturn:最后返回相应MvcResult;然后进行自定义验证/进行下一步异步处理(对返回数据进行判断) 在上面的测试类,我们用到了这么一个类MockMvcRequestBuilders

1.2K20

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

单元测试(unit testing),是指对软件最小可测试单元进行检查和验证。Java单元测试最小单元是类。 2....众所周知,通过spring initialize创建Spring Boot项目会在Maven自动携带很多starter依赖: ?...面向对象程序设计,模拟对象(英语:mock object)是以可控方式模拟真实对象行为假对象。在编程过程,通常通过模拟一些输入数据,来验证程序是否达到预期结果。 2....现在将上面的一些琐碎知识点汇总一下: mockMvc.perform:执行一个请求 MockMvcRequestBuilders.get(“/XXX/get”):构造一个请求,Post请求使用.post...六、断言概念 断言(assert),是编程术语,表示为一些布尔表达式,程序员相信程序某个特定点该表达式值为真。

1.7K10

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

一个web请求工作就像一个快递员,负责将信息从一个地方运送到另一个地方。 从web请求离开浏览器(1)到返回响应,中间经历了几个节点,每个节点都进行一些操作用于交换信息。...通过get方法构造GET请求,访问"/spittles",并确保返回视图名称是"spittles",返回model数据包含spittleList属性,且对应值为我们之前创建测试数据。...调用addAttribute方法时候,如果指定key字段,则key字段会从value类型推导出,在这个例子默认key字段是spittleList。...不同之处在于这里构造GET请求——/spittles/12345,并希望返回视图逻辑名称是spittle,返回模型对象包含关键字spittle,且与该key对应值为我们创建测试数据。...,希望调用至少保存unsave这个对象一次,而实际上控制器执行save时候,参数对象ID是另一个——根据参数新创建

2.5K20

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

---- 一、 单元测试概念 概念: \1. 单元测试(unit testing),是指对软件最小可测试单元进行检查和验证。Java单元测试最小单元是类。 \2....众所周知,通过spring initialize创建Spring Boot项目会在Maven自动携带很多starter依赖: ?...面向对象程序设计,模拟对象(英语:mock object)是以可控方式模拟真实对象行为假对象。在编程过程,通常通过模拟一些输入数据,来验证程序是否达到预期结果。 \2....四、Service层单元测试 第一步: Spring Boot单元测试类写在src/test/java目录下,你可以手动创建具体测试类,也可以通过IDEA自动创建测试类,如下图:(注:点选并打开相应代码界面...,程序员相信程序某个特定点该表达式值为真。

26.7K86

实战:Spring Boot 程序如何做好 Web 层测试

首先,创建对应 Controller 类单元测试类,使用 @SpringBootTest 注解标记测试类,来指明是一个基于 Spring Boot 单元测试类,运行测试类时,框架会创建一个应用上下文...,程序中所有配置过 Bean 都会被创建到这个应用上下文中,比如 Controller 类所依赖一些 Service 组件或者配置组件。...另外,上述测试方法实现里通过status().isOk()断言了响应码为 200,通过 jsonPath("$.username").value("test") 断言了响应结果为 json 数据时,username...这里官方提供了 MockMvcBuilders 帮助我们构建全局 MockMvc,并且可以进行全局默认配置,定义一些公共操作,比如打印结果,断言响应码等等,具体实现方法可以参见下方代码示例: @SpringBootTest...,装载所有 Bean,如果应用本身比较庞大,就会造成测试类启动时间过长问题,那有什么方法可以测试 Web 层时加速应用启动呢?

92020

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

Java单元测试最小单元是类。 单元测试是开发者编写一小段代码,用于检验被测代码一个很小、很明确功能是否正确。执行单元测试,就是为了证明这 段代码行为和我们期望是否一致。...单元测试引用: 众所周知,通过spring initialize创建Spring Boot项目会在Maven自动携带很多starter依赖: 搞开源也会被死亡恐吓!...面向对象程序设计,模拟对象(英语:mock object)是以可控方式模拟真实对象行为假对象。在编程过程,通常通过模拟一些输入数据,来验证程序是否达到预期结果。 为什么使用Mock对象?...四、Service层单元测试 第一步: Spring Boot单元测试类写在src/test/java目录下,你可以手动创建具体测试类,也可以通过IDEA自动创建测试类,如下图:(注:点选并打开相应代码界面...,程序员相信程序某个特定点该表达式值为真。

2.3K20

使用MockMVC进行Controller单元测试

引入 由于MockMVC是Spring框架自带测试组件,因此只要在项目中引入spring-boot-starter-test这个测试套件就可以使用Spring-test库MockMVC了。...,提供查询和创建功能。...测试执行阶段,通过对URI访问,查询id=1keyword。...response状态进行断言(200),并打印请求和响应 5)对响应结果进行断言(json) 来看一下用例执行过程,通过print()方法打印请求和响应 MockHttpServletRequest...@RequestParam进行了测试(感兴趣读者可以尝试调用接口时不提供id=1入参) 3)对接口返回进行了断言 4)对接口返回对象反序列化进行了断言 下一篇将介绍如何使用MockMvc进行集成测试

5.2K10
领券