spring - 带有控制器建议异常处理程序和 webAppContextSetup 的 SpringBoot 的 MockMvc
问题描述
我有一个需要使用完整的 WebApplicationContext 创建 MockMvc 的环境。@AutoConfigureMockMvc
在 setUp() 方法中
使用此注释或此行: MockMvcBuilders.webAppContextSetup()
。
我不能使用 MockMvc 的独立控制器版本,MockMvcBuilders.standaloneSetup()
因为它需要相当复杂的配置才能工作。
我从各种文章中了解到,出于某种奇怪的原因,在没有适当的控制器建议设置的情况下创建了 MockMvc。因此,对于预期错误处理但未在测试环境中连接的场景,响应是完全不同的。
我想知道是否有任何方法可以使 MockMvc 设置类似于 Spring Boot 应用程序,其中包括异常处理程序。
如果不可能,我想知道考虑到限制是否有任何方法可以智能地测试错误场景。
我了解独立设置允许通过StandaloneMockMvcBuilder.setControllerAdvice()
简化手动添加控制器建议。不幸的是,我必须坚持使用 webAppContextSetup 并且DefaultMockMvcBuilder
没有这样的方法。
更新:
测试使用以下注释:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MyApplication.class)
@AutoConfigureMockMvc
@WebAppConfiguration
@ContextConfiguration
@ActiveProfiles("test")
@Transactional
@WithMockUser(username = "test", roles = { "role1" })
异常处理程序带有注释
@RestControllerAdvice
更新2:
MyApplication 类中添加了以下注释
@ComponentScan(basePackages = {"com.xyz", "com.xyz.config"})
其中 com.xyz 是主包,MyApplication 类位于其中,com.xyz.config 是异常处理程序的包。它没有帮助。
解决方案
推荐阅读
- java - Spring - 在运行时使用自定义限定符获取 bean
- c# - 如何使用未屏蔽的电话号码从访问数据库中搜索数据
- mule - Mule4 使用读取连接器读取文件
- python - var 不返回打印值,为什么?
- python-3.x - 无法连接到 Python shell 之外的 docker 容器中的 postgres
- apache-spark - 带有 spark 2.4 的 cloudera 6.1 中的 commons-lang3 无效版本
- r - R错误:错误:`f`必须是一个因子(或字符向量)
- php - 如何在 PHP 中使用 json_decode?
- r - Cox 模型,coxph(),无事件对照处理,种子萌发
- ansible - 剧本执行后如何将调试输出逐行重定向到文本文件中