java新建测试程序_java – 如何创建一个CloseableHttpResponse对象来帮助测试?
我正在嘗試構建一個
CloseableHttpResponse模擬對象,以在我的單元測試中返回,但是沒有構造函數.我發現這個
DefaultHttpResponseFactory,但它只是一個HttpResponse.什么是構建CloseableHttpResponse的簡單方法?我需要在測試中調用execute(),然后設置statusLine和entity?這似乎是一個奇怪的做法.
這是我試圖嘲笑的方法:
public static CloseableHttpResponse getViaProxy(String url, String ip, int port, String username,
String password) {
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope(ip, port),
new UsernamePasswordCredentials(username, password));
CloseableHttpClient httpclient = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider).build();
try {
RequestConfig config = RequestConfig.custom()
.setProxy(new HttpHost(ip, port))
.build();
HttpGet httpGet = new HttpGet(url);
httpGet.setConfig(config);
LOGGER.info("executing request: " + httpGet.getRequestLine() + " via proxy ip: " + ip + " port: " + port +
" username: " + username + " password: " + password);
CloseableHttpResponse response = null;
try {
return httpclient.execute(httpGet);
} catch (Exception e) {
throw new RuntimeException("Could not GET with " + url + " via proxy ip: " + ip + " port: " + port +
" username: " + username + " password: " + password, e);
} finally {
try {
response.close();
} catch (Exception e) {
throw new RuntimeException("Could not close response", e);
}
}
} finally {
try {
httpclient.close();
} catch (Exception e) {
throw new RuntimeException("Could not close httpclient", e);
}
}
}
以下是使用PowerMockito的模擬代碼:
mockStatic(HttpUtils.class);
when(HttpUtils.getViaProxy("http://www.google.com", anyString(), anyInt(), anyString(), anyString()).thenReturn(/*mockedCloseableHttpResponseObject goes here*/)
總結
以上是生活随笔為你收集整理的java新建测试程序_java – 如何创建一个CloseableHttpResponse对象来帮助测试?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java监听器模式使用场景_常用监听器及
- 下一篇: 各类数据类型的用法java_Java各种