我想断言引发异常并且服务器返回 500 内部服务器错误。
为了突出意图,提供了一个代码片段:
thrown.expect(NestedServletException.class);
this.mockMvc.perform(post("/account")
.contentType(MediaType.APPLICATION_JSON)
.content(requestString))
.andExpect(status().isInternalServerError());
当然,我写 isInternalServerError
或 isOk
。无论是否在 throw.except
语句下方抛出异常,测试都会通过。
你将如何解决这个问题?
原文由 Farmor 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您有 异常处理程序 并且想要测试特定异常,您还可以断言该实例在已解决的异常中有效。
更新(gavenkoa)不要忘记注入
@ExceptionHandler
注释的测试上下文方法或异常将发生在.perform()
而不是用.andExpect()
注册,基本上注册:使用
@Import(value=...)
或@ContextConfiguration(classes=...)
或通过其他方式。