0

我是 Java 编程新手,我有以下代码段,我想在上面编写单元测试:

Response response = request.get();
if (response.getStatusInfo().getFamily().equals(Response.Status.Family.SUCCESSFUL)) {
     return response.readEntity(type);
}

我可以使用以下代码创建 HTTP 请求返回有效响应的场景:

stubFor(get("someUrl").willReturn(aResponse().withStatus(200)));

我想创建另一个方法调用response.readEntity(type)引发异常的场景。为此,我要求该request.get()方法返回一个模拟对象,以便我可以在模拟对象上定义所需的行为。我阅读了http://wiremock.org/docs提供的文档以了解如何执行此行为,但没有找到任何方法将模拟对象作为 HTTP 响应返回。

此外,request变量没有注入,因此我不能直接模拟它。

4

1 回答 1

1

你不能做类似的事情

stubFor(get("/$metadata?annotations=true").willReturn(aResponse().withStatus(200).withBody(Mock()));. 这是因为wiremock 仅充当http 服务器模拟。您唯一可以配置的是响应(例如,在 JSON 中)。您可以做的是从wiremock返回例如400和错误代码正文,并检查您的代码是否接受此消息并正确处理它。

于 2021-06-06T20:13:26.903 回答