所以我有一个带有一个 GET 方法的控制器。我需要测试一下。当我使用不正确的国家/地区iso 代码写入URL 请求时,它会向我抛出一个自定义异常。那么我该如何测试呢?
所以这里的 'UA'
是不正确的参数
@Test
fun check_for_incorrect_iso_code() {
mockMvc.perform(get("/countries/UA"))
.andDo(print())
.andExpect(status().is4xxClientError)
}
测试工作正常,但我需要扩展它并检查它是否抛出我的自定义异常 - 例如 'InvalidIsoCodeException'
。
感谢您的回答。
答案 0 :(得分:2)
您的 Java 代码正在抛出 InvalidIsoCodeException
,但您的服务器/控制器不能抛出异常。相反,它向客户端发送回 HTTP 响应。 InvalidIsoCodeException
由 Spring 映射到特定响应。您已经在使用 .andExpect(status().is4xxClientError())
检查响应的状态。如果您想更具体,还可以验证响应的正文。
如果你想测试异常,那么你必须像没有 MockMVC 的普通 Java 类一样测试你的控制器。