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

Spring MVC Mockito测试返回406错误而不是200

Spring MVC是一个基于Java的开源框架,用于构建Web应用程序。它采用了模型-视图-控制器(MVC)的设计模式,将应用程序的不同部分分离开来,以提高代码的可维护性和可测试性。

Mockito是一个流行的Java测试框架,用于模拟对象和进行单元测试。它可以帮助开发人员编写可靠的、可重复的测试用例,以验证代码的行为是否符合预期。

当Spring MVC的Mockito测试返回406错误而不是200时,这可能是由于以下原因导致的:

  1. 请求的内容类型不受支持:HTTP状态码406表示请求的内容类型不受服务器支持。在Spring MVC中,可以使用@RequestMapping注解来指定支持的内容类型。确保请求的内容类型与控制器方法中指定的内容类型匹配。
  2. 缺少适当的响应转换器:Spring MVC使用响应转换器将控制器方法的返回值转换为HTTP响应。如果缺少适当的响应转换器,就会导致406错误。可以使用@ResponseBody注解将控制器方法的返回值标记为响应体,并确保已配置适当的转换器。
  3. 未正确配置Mockito测试:在Mockito测试中,需要正确配置模拟对象的行为和预期结果。如果未正确配置模拟对象的返回值,就可能导致406错误。确保使用Mockito的whenthenReturn方法来设置模拟对象的行为。

针对这个问题,可以尝试以下解决方案:

  1. 检查请求的内容类型是否与控制器方法中指定的内容类型匹配。可以使用@RequestMapping注解的produces属性指定支持的内容类型。
  2. 确保已正确配置适当的响应转换器。可以使用@ResponseBody注解将控制器方法的返回值标记为响应体,并确保已配置适当的转换器。
  3. 检查Mockito测试中是否正确配置了模拟对象的行为和预期结果。使用Mockito的whenthenReturn方法来设置模拟对象的返回值。

腾讯云提供了一系列与云计算相关的产品,可以帮助开发人员构建和部署应用程序。以下是一些推荐的腾讯云产品和产品介绍链接地址:

  • 云服务器(ECS):提供可扩展的计算能力,用于部署应用程序。产品介绍链接
  • 云数据库MySQL版(CDB):提供高可用性和可扩展性的关系型数据库服务。产品介绍链接
  • 云存储(COS):提供安全可靠的对象存储服务,用于存储和访问大规模的非结构化数据。产品介绍链接
  • 人工智能(AI):提供各种人工智能服务,如图像识别、语音识别和自然语言处理。产品介绍链接
  • 物联网(IoT):提供物联网设备管理和数据处理的解决方案。产品介绍链接

以上是一些腾讯云的产品示例,可以根据具体需求选择适合的产品。请注意,这仅仅是一些建议,并不代表其他云计算品牌商的产品不好。

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

相关·内容

Spring Boot的单元测试(概念)

Mockito:Java mocking框架,用于模拟任何Spring管理的Bean,例如在单元测试中模拟一个第三方系统Service接口返回的数据,不去真正调用第三方系统。...问题是单元测试不能实际调用CreditService(因为CreditService是第三方系统),因此,我们在单元测试类需要使用Mockito的注解@MockBean自动注入Spring管理的Service...; } } 关键点: 需要注意的是,我们在使用@WebMvcTest注解测试Controller时,带有@Service以及别的注解组件类不会自动被扫描注册为Spring容器管理的Bean,@SpringBootTest...(get("/getCredit/{id}/{uname}", uid, uname).param("errorMessage", "用户名或密码错误")); //模拟提交check mvc.peform...示例代码如下: mvc.peform(get("/getOneUser/10")) .andExpect(status().isOk()) //期望请求成功,即状态码为200 //期望返回内容是application

1.5K30

Spring Boot 做单元测试,真心强悍!

真实环境测试 在 @SpringBootTest 注解中指定基于随机端口的真实Web环境,然后在类成员变量或者方法参数上注入 TestRestTemplate 实例,就可以完成对 Spring MVC接口的真实环境测试...Mock 环境测试 通过在类上面使用 @AutoConfifigureMockMvc 注解,然后在类成员变量或者方法参数上注入MockMvc 实例,就可以完成对 Spring MVC 接口的 Mock.../user/get 接口,传入对应的用户名参数,最后检查请求状态是否OK(200),响应的内容是否和预期一致,测试结果如下图所示。...Spring Boot 提供了一个 @MockBean 注解,可为 Spring 中的 Bean 组件定义基于 Mockito 的Mock 测试,它可以创建一个新 Bean 以覆盖 Spring 环境中已有的...Mock 覆盖的,如果要模拟的 Bean 有多个,则可以使用@Qualififier注解指定,然后通过Mockito 提供的代理工具类方法创建模拟返回数据,运行该服务的测试方法,当模拟数据和预期结果一致时才会测试通过

52830

Springboot+Junit5微服务单元测试编写实践

Springboot+Junit5微服务单元测试编写实践 现在写单元测试的重要性不言喻,下边说明一下Junit5测试的会用到的主要注解和方法。PS:常用开发工具都可以自动生成Junit测试类。...不需要Spring上下文时用该注解 模拟类或接口的注解 @Mock、@InjectMocks、@Spy Mockito库提供的注解;@Mock创建一个Mock对象,@InjectMocks创建一个实例...,尝试将其它有@Mock或@Spy的对象注入到该实例中;@Spy默认会调用真实的方法,@Mock默认不执行 @MockBean、@SpyBean Spring Boot包装Mockito库提供的注解;...测试方法结构 单元测试采用Given...When...Then的结构,即 准备数据,用mock模拟方法返回值 执行,调用测试方法 验证,用assert等验证方法返回结果 数据库的单元测试 @MybatisPlusTest...可以在做数据库的单元测试时不使用@SpringBootTest注解启动整个工程 接入层的单元测试 @WebMvcTest 同样用来做MVC层的单元测试,只注入MVC层相关的Bean

1.5K00

SpringBoot 单元测试利器-Mockito

Mockito 是一种 Java mock 框架,他主要是用来做 mock 测试的,他可以模拟任何 Spring 管理的 bean、模拟方法的返回值、模拟抛出异常...等,在了解 Mockito 的具体用法之前...Mockito 简介 说完了 mock 测试的概念,接下来我们进入到今天的主题,Mockito Mockito 是一种 Java mock 框架,他主要就是用来做 mock 测试的,他可以模拟任何 Spring...可以在单元测试中模拟一个 service 返回的数据,不会真正去调用该 service,这就是上面提到的 mock 测试精神,也就是通过模拟一个假的 service 对象,来快速的测试当前我想要测试的类...目前在 Java 中主流的 mock 测试工具有 Mockito、JMock、EasyMock..等, SpringBoot 目前内建的是 Mockito 框架 题外话说一下,Mockito 是命名自一种调酒莫吉托...userService 的方法时,会去调用的实际上是 mock userDao bean 的方法,不是真实的 userDao bean 当我们创建了一个假的 userDao 后,我们需要为这个 mock

2.5K10

SpringBoot - 单元测试利器Mockito入门

举个例子: 类 A 需要调用类 B 和类 C,类 B 和类 C 又需要调用其他类如 D、E、F 等,假设类 D 是一个外部服务,那就会很难测,因为你的返回结果会直接的受外部服务影响,导致你的单元测试可能今天会过...---- What’s Mockito Mockito 是一种 Java Mock 框架,主要就是用来做 Mock 测试的,它可以模拟任何 Spring 管理的 Bean、模拟方法的返回值、模拟抛出异常等等...像是 Mockito 可以在单元测试中模拟一个 Service 返回的数据,不会真正去调用该 Service,通过模拟一个假的 Service 对象,来快速的测试当前想要测试的类。...目前在 Java 中主流的 Mock 测试工具有 Mockito、JMock、EasyMock等等, SpringBoot 目前默认的测试框架是 Mockito 框架。...userService 的 userDao Bean,已经被我们替换成假的 Mock 对象了,所以当我们再次调用 userService 的方法时,会去调用的实际上是 mock userDao Bean 的方法,不是真实的

14.3K42

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

理想情况下,某个指定的资源应该可以通过路径指定,不是通过查询参数指定,因此GET请求最好是这种形式:/spittles/12345。...现在执行之前的测试用例,发现一个错误如下所示: ?...参见你应该更新的Java知识之常用程序库 当InternalResourceViewResolver看到这个函数返回的重定向URL是以view标志开头,就知道需要把该URL当做重定向URL处理,不是按照视图逻辑名称处理...涵盖了Spring MVC处理web请求的处理过程、如何写简单的控制器和控制器方法来处理Http请求、如何使用mockito框架测试控制器方法。...基于Spring MVC的应用有三种方式读取数据:查询参数、路径参数和表单输入。本章用两节介绍了这些内容,并给出了类似错误处理和参数验证等关键知识点。

2.5K20

Http状态码406(Not Acceptable) 错误问题解决方法

状态码406:HTTP协议状态码的一种(4xx表示客户端的问题),表示客户端无法解析服务端返回的内容。说白了就是后台的返回结果前台无法解析就报406错误。...示例代码中请求代码,后台代码均正常,且有返回信息。...,请求头(Request Headers)中看到Accept优先是application/json格式,响应头(Response Hraders)中却发现返回信息的格式是“text/html”,前台无法解析...是因为spring mvc 配置了 后 ,如果classpath 里面包含jackson 包,则自动注册MappingJackson2HttpMessageConverter...spring mvc jackson 支持原理分析_taotoxht的专栏-CSDN博客_jackson 原理 结果展示: ——————————————————————————————————————

2.1K20

微服务架构之Spring Boot(六十四)

45.3.8自动配置的测试 Spring Boot的自动配置系统适用于应用程序,但有时对于测试来说有点太多了。通常,只需加载测试应用程序“切片”所需的配置部分。...例 如,您可能希望测试Spring MVC控制器是否正确映射URL,并且您不希望在这些测试中涉及数据库调用,或者您可能想要测试JPA实体,并且您 对Web不感兴趣这些测试运行时的图层。...45.3.10自动配置的Spring MVC测试测试Spring MVC控制器是否按预期工作,请使用 @WebMvcTest 注释。...Mock MVC提供了一种快速测试MVC控制器的强大方法,无需启动完整的HTTP服务器。...您可以使用Spring安全性测试支持,不是 完全禁用此类测试的安全性。

1.1K20

重学SpringBoot系列之Mockito测试

(Spring Boot 2.3.0.RELEASE)自动包含Junit 5 和Mockito框架,以下测试代码是基于Junit5,使用Junit4的同学请自行调整代码。...---断言 .andExpect(MockMvcResultMatchers.status().isOk()) //HTTP:status 200 //可以取出返回结果中的值和期望值进行比较...看到上面这个截图,是不是已经明白了!该测试方法真实的启动了一个tomcat容器、以及Spring 上下文,所以我们可以进行依赖注入(@Resource)。...@AutoConfigureMockMvc注解,该注解表示mockMvc对象由spring 依赖注入构建,你只负责使用就可以了。这种写法是为了让测试在servlet容器环境下执行。...表示程序真正的去执行了MockBean的模拟行为,不是调用真实对象的方法。

2.3K20

单元测试指南

JUnit:Java中最有名、使用最广泛的单元测试框架 Mockito:模拟框架,可以让你用干净简单的API编写测试 Spring Test: 使用 Spring Test 来对Spring相关的项目做单元测试...如果你真的想通过reset()方法满足某些需求的话,请考虑实现简单,小而且专注于测试方法不是冗长,精确的测试。首先可能出现的代码异味就是测试方法中间那的reset()方法。...对 Spring MVC测试 为了测试 web 项目,需要一些 Servlet 相关的模拟对象,比如:MockMVC/MockHttpServletRequest/MockHttpServletResponse...(3). web模块的单元测试测试 Spring MVC 控制器是否按预期工作,请使用@WebMvcTest注释。...,测试覆盖率是不是越高代表代码质量越好呢?

6K20

Java Web技术经验总结(一)

注意:推荐能使用servlet规范中的过滤器Filter实现的功能就用Filter实现,因为HandlerInteceptor只有在Spring Web MVC环境下才能使用,因此Filter是最通用的...日志记录 异常处理 入参检查 返回结果生成 异步任务处理 代码review:自己review => 高级开发者review;核心代码需要团队review 测试 功能测试(正常case、异常case)...mockito测试的时候没法预设行为;在spring中要使用其他组件,必须通过xml或者注解方式,由spring容器负责装配。...单元测试,推荐使用Mockito框架,理由有三:(1)可专注于被测试对象;(2)不需要建立复杂的bean依赖关系;(3)DSL描述性语言简单易懂。...参考文章:反模式的经典 - Mockito设计解析 在项目开发中,建议配合使用Mockito和Assertj写单元测试

42920

Spring Boot 应用的测试Spring Boot 应用的测试

1.1 准备工作 本节先来创建一个基于Spring MVCSpring Data JPA的 Spring Boot, 完成Dao 层、 Service 层、Controller 层代码的编写,为后面的测试代码的编写做准备...运行上面的测试类,可以发现测试成功 图15-2 MockUserServiceTest测试成功 在测试代码的打印日志中,输出的 getOne(1)方法的返回对象是我们 Mock 的对象mockUser...表15-1 方法名 功能说明 Perform() 方法其实只是为了构建一个请求,并且返回ResultActions实例,使用该实例可以获取到请求的返回内容。...1.2.5 JSON接口测试 使用 JsonPath 我们可以像 JavaScript 语法一样方便地进行 JSON 数据返回的访问操作。...Spring Boot 应用对Web层测试提供强大的支持:采用MockMvc方式测试Web请求,根据传递的不用参数以及请求返回对象反馈信息进行验证测试

1.5K30
领券