- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我运行应用程序并且对我的端点之一的请求存在验证问题时,响应包含大量有关到底出了什么问题的信息。它看起来类似于:
{
"timestamp": "2017-11-23T13:18:05.923+0000",
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.web.bind.MethodArgumentNotValidException",
"errors": [
{
"codes": [
"Size.sensorParameters.openText",
"Size.openText",
"Size.java.lang.String",
"Size"
],
"arguments": [
{
"codes": [
"sensorParameters.openText",
"openText"
],
"arguments": null,
"defaultMessage": "openText",
"code": "openText"
},
20,
1
],
"defaultMessage": "size must be between 1 and 20",
"objectName": "sensorParameters",
"field": "openText",
"rejectedValue": "xewrewrwerwer weew ewewewrwe ew wewewewerew we ewrwerwe ewr ",
"bindingFailure": false,
"code": "Size"
}
],
"message": "Validation failed for object='sensorParameters'. Error count: 1",
"path": "/api/monitors/89c94880-9423-4990-892b-6bbd8e90b1e6/sensors"
}
如果我在 @WebMvcTest
中对此进行测试,我确实会得到相同的 400 响应,但响应正文为空。
为了在单元测试中获得相同的行为,我应该做一些额外的设置吗?我正在使用从测试框架获得的@Autowired MockMvc 对象,目前我这边没有任何额外的设置。
最佳答案
正如 Rossen Stoyanchev(MockMvc
的发明者)在 JIRA 的相关问题中指出的那样...
the body is taken care of by Spring Boot which configures error mappings at the Servlet container level (see here and since Spring MVC Test runs with a mock Servlet request/response, there is no such error mapping.
他接着建议,使用 MockMvc
来测试 Controller 逻辑和映射,但使用 Spring Boot 编写容器内集成来测试错误映射支持在 Spring Boot 管理的 Servlet 中。
如果您认为 Spring Boot 应该以某种方式(神奇地)与 MockMvc
结合提供错误映射支持,我建议您在 GitHub 上针对 Spring Boot 项目提出问题。
关于java - 如何在 @WebMvcTest 中获取 Spring Boot 默认验证响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47456723/
我正在我的应用程序中实现 JWT 身份验证。一切正常,但是当我运行已经存在的 @WebMvcTests 并检查返回的状态代码时,它们都失败并显示“实际:403”。 这是我当前的测试套件之一: @Web
我正在尝试使用 @WebMvcTest 创建 Controller 测试,据我了解,当我添加测试类的 @WebMvcTest(ClientController.class) 注释时它不应该创建大量的
在我将@Service 添加到 Controller 后,我的单元测试失败了。该项目是 Spring-boot v 2.0.1.RELEASE。我花了很多时间试图找到答案,但没有运气。该测试在我添加
我想在 BookRestController 中测试我的休息端点。我使用 @WebMvcTest 编写了一个测试。 @RunWith(SpringRunner.class) @WebMvcTest(B
我在 groovy 上有 Controller @RestController @RequestMapping('/v1') @CompileStatic class DatasourceResour
Spring Boot 1.4 添加了 @WebMvcTest,它连接了测试我的应用程序的 Web 切片所需的部分。这太棒了,但我也想确保我的自定义过滤器和安全代码已连接,这样我也可以验证它们是否正常
我要test application slices ,但有一个包我想排除,因为它与那些测试根本无关。 我正在尝试以这种方式排除包: @RunWith(SpringRunner.class) @WebM
我有一个 spring rest mvc Controller ,它的 url 是“/public/rest/vehicle/get”。在我的安全配置中,我定义了对/public/rest 的任何请求
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
使用@WebMvcTest 将通过查找@SpringBootConfiguration 类(例如@SpringBootApplication)自动配置所有web 层bean。 如果配置类在不同的包里,
我正在编写一个 Controller 测试,其中 Controller 看起来像 @RestController public class VehicleController { @Autow
我有一个 Spring Boot 应用程序,可生成大量 Controller ,我的目标是为特定 Controller 创建集成测试。我读到我们可以使用 @WebMvcTest 注释实现一个测试切片,
我有点被这个问题难住了。我见过的例子和我在网上找到的所有内容都表明这一点 public ResponseEntity getTerminalsBySearchTerm( @PathPa
我正在学习如何测试我的 SpringBoot 应用。 现在我正在尝试通过为现有工作项目创建测试来学习。 我从我的 AdminHomeController 开始,它在管理员登录时管理主页: @Con
我有以下主类。 @EnableJpaAuditing @SpringBootApplication @EnableJpaRepositories(repositoryFactoryBeanClass
我在测试 Spring Controller 时遇到了问题。我在我的测试类中使用注释@WebMvcTest。当我运行测试时,我得到这个错误:没有可用的“org.springframework.boot
是否有可能在测试上下文中声明一个 RestController ,最好是作为 Spring Boot 测试的内部类?我确实需要它用于特定的测试设置。我已经尝试以下简单示例作为 POC: import
我的目标是将之前使用 Spring Boot 1.3 开发的 Spring Boot 应用程序迁移到最新的 Spring Boot 版本 1.4。该应用程序由几个 maven 模块组成,其中只有一个包
我有一个 Controller 和一个使用 @WebMvcTest 的测试,它运行良好。现在我需要添加一些验证逻辑,为此我 @Autowired一个额外的 bean(一个 @Component ,一个
我有一个 Spring Boot 应用程序 (1.5.10.RELEASE),其中包含如下所示的主要 (SpringBootApplication): @SpringBootApplication @
我是一名优秀的程序员,十分优秀!