如何测试我的控制器在kotlin中抛出异常?

clj7thdc  于 2021-07-15  发布在  Java
关注(0)|答案(1)|浏览(434)

所以我有一个带有一个get方法的控制器。我需要测试一下。当我用不正确的国家的iso代码编写url请求时,它会抛出一个自定义异常。那我怎么测试呢?
所以在这里 'UA' 参数不正确

@Test
fun check_for_incorrect_iso_code() {
    mockMvc.perform(get("/countries/UA"))
        .andDo(print())
        .andExpect(status().is4xxClientError)
}

测试正在运行,但我需要扩展它并检查它是否抛出我的自定义异常- 'InvalidIsoCodeException' 例如。
谢谢你的回答。

omhiaaxx

omhiaaxx1#

您的java代码正在抛出 InvalidIsoCodeException 但是服务器/控制器不能抛出异常。相反,它向客户机发回一个http响应。这个 InvalidIsoCodeException 由springMap到特定的响应。您已经在用检查响应的状态 .andExpect(status().is4xxClientError()) . 如果您想更具体一些,还可以验证响应的主体。
如果您想测试异常,那么您必须像测试没有mockmvc的普通java类一样测试您的控制器。

相关问题