【问题标题】:How to throw a 408 HTTP code in Mockito test?如何在 Mockito 测试中抛出 408 HTTP 代码?
【发布时间】:2021-10-28 18:34:57
【问题描述】:

例如我可以使用以下内容抛出 403:

    when(...)
        .thenThrow(ForbiddenException.class);

但是似乎没有请求超时 HTTP 代码 (408) 的类。

如何响应给定的when 子句抛出 408?

【问题讨论】:

  • 如果您指的是 J2EE ForbiddenException 类,您可能会注意到它扩展了 javax.ws.rs.ClientErrorException 并且它与其他一些特定类型一起提供,但您始终可以使用 http 创建 ClientErrorException 实例您需要的状态

标签: java http testing junit mockito


【解决方案1】:
when( ... ).thenThrow(new ClientErrorException(408));

请注意,thenThrow 方法有两种版本——一种以异常类作为参数,另一种以异常对象为参数。第一个版本导致使用给定类的默认构造函数实例化异常,此时必须抛出异常。第二个版本只是抛出你给它的任何东西。

在这种情况下,没有类的默认构造函数给你一个 408 异常,所以你需要使用thenThrow 的第二个版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多