如何 return 来自 HTTP 请求的模拟响应对象?
How to return a mock response object from HTTP request?
我是 Java 编程的新手,我有以下代码片段,我想在上面编写单元测试:
Response response = request.get();
if (response.getStatusInfo().getFamily().equals(Response.Status.Family.SUCCESSFUL)) {
return response.readEntity(type);
}
我可以使用以下代码创建 HTTP 请求 return 有效响应的场景:
stubFor(get("someUrl").willReturn(aResponse().withStatus(200)));
我想创建另一个场景,方法调用 response.readEntity(type)
会引发异常。为此,我要求 request.get()
方法 return 给我一个模拟对象,以便我可以在模拟对象上定义所需的行为。
我阅读了 http://wiremock.org/docs 提供的文档以了解如何执行此行为,但没有找到任何方法 return 模拟对象作为 HTTP 响应。
此外,request
变量没有被注入,因此我不能直接模拟它。
你不能做类似
的事情
stubFor(get("/$metadata?annotations=true").willReturn(aResponse().withStatus(200).withBody(Mock()));
。这是因为 wiremock 仅充当 http 服务器模拟。您唯一可以配置的是响应(例如 JSON)。
您可以做的是 return 例如来自 wiremock 的 400 和错误代码正文,并检查您的代码是否接受此消息并正确执行。
我是 Java 编程的新手,我有以下代码片段,我想在上面编写单元测试:
Response response = request.get();
if (response.getStatusInfo().getFamily().equals(Response.Status.Family.SUCCESSFUL)) {
return response.readEntity(type);
}
我可以使用以下代码创建 HTTP 请求 return 有效响应的场景:
stubFor(get("someUrl").willReturn(aResponse().withStatus(200)));
我想创建另一个场景,方法调用 response.readEntity(type)
会引发异常。为此,我要求 request.get()
方法 return 给我一个模拟对象,以便我可以在模拟对象上定义所需的行为。
我阅读了 http://wiremock.org/docs 提供的文档以了解如何执行此行为,但没有找到任何方法 return 模拟对象作为 HTTP 响应。
此外,request
变量没有被注入,因此我不能直接模拟它。
你不能做类似
的事情stubFor(get("/$metadata?annotations=true").willReturn(aResponse().withStatus(200).withBody(Mock()));
。这是因为 wiremock 仅充当 http 服务器模拟。您唯一可以配置的是响应(例如 JSON)。
您可以做的是 return 例如来自 wiremock 的 400 和错误代码正文,并检查您的代码是否接受此消息并正确执行。