【问题标题】:How can I test my controller for throwing an exception in Kotlin?如何测试我的控制器在 Kotlin 中抛出异常?
【发布时间】:2021-06-22 12:14:49
【问题描述】:

所以我有一个带有一种 GET 方法的控制器。我需要测试它。当我使用不正确的国家/地区 iso 代码写入 URL 请求时,它会抛出一个自定义异常。那么如何测试呢?

所以这里'UA' 是不正确的论点

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

测试正在运行,但我需要扩展它并检查它是否引发了我的自定义异常 - 例如'InvalidIsoCodeException'

感谢您的回答。

【问题讨论】:

    标签: spring kotlin junit controller rest


    【解决方案1】:

    您的 Java 代码正在抛出 InvalidIsoCodeException,但您的服务器/控制器不能抛出异常。相反,它会向客户端发送回 HTTP 响应。 InvalidIsoCodeException 由 Spring 映射到特定响应。您已经使用.andExpect(status().is4xxClientError()) 检查响应的状态。如果您想更具体,还可以验证响应的正文。

    如果你想测试异常,那么你必须像没有 MockMVC 的普通 Java 类一样测试你的控制器。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 2020-07-24
    • 2023-01-25
    相关资源
    最近更新 更多