如何构建com.netflix.client.http.httpresponse对象



我正在编写unit test案例,使用mocking概念,我mocking RestClient class 原始代码:

final HttpResponse response = restClient.executeWithLoadBalancer(request);

Spock测试类模拟代码:

restClient.executeWithLoadBalancer(_ as HttpRequest) >> httpResponse

在这里,我必须构建和设置httpResponse.如何构建 HttpResponse

由于 HttpResponse 是一个接口,您无法真正构建或创建它的实例。您可以做的可能是创建实现此接口的类的实例。 例如: HttpClientResponse

您可以构建和设置httpResponse 任何你喜欢的东西如下,

ClientResponse clientResponse = Mock(ClientResponse)
MultivaluedMapImpl sampleHeaders = new MultivaluedMapImpl()
sampleHeaders.add("name", "test")
clientResponse.getHeaders() >> sampleHeaders
HttpResponse httpResponse = new HttpClientResponse(clientResponse,null,null)
restClient.executeWithLoadBalancer(_ as HttpRequest) >> httpResponse

附带说明一下,要模拟客户端响应,您需要类路径中的对象。

最新更新