我正在尝试构建一个

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对象来帮助测试?相关推荐

  1. java 按钮组_java中创建一个按钮组,有10个按钮,分别写着0,1,2,,3。。。。9

    展开全部 用Java创建按钮组32313133353236313431303231363533e59b9ee7ad9431333332643966的程序如下:import java.awt.GridL ...

  2. 线程池 java 新建方式_Java线程池的四种创建方式

    Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程. newFi ...

  3. java map存放班级和姓名_Java 创建一个HashMap对象,并在其中添加学生的姓名和成绩,键为学生姓名,值为学生成绩,使用增强for循环遍历该HashMap,并输出学生成绩。...

    |--需求说明 |--实现思路 1.使用map.containsKey()判断输入的姓名在不在map里面,如果在就打印 2.遍历全班姓名和成绩,需要创建Map.entry,然后在map.entry里面 ...

  4. Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString()方法分别显示上述日期

    Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString方法分别显示上述日期 题目 代码 思路 代码 题目 代码 思路 ...

  5. java创建response对象_创建一个HttpResponse对象

    创建一个HttpResponse对象 HttpResponse类实现了javax.servlet.http.HttpServletResponse.跟随它的是一个叫做 HttpResponseFaca ...

  6. java全景图片生成_[Java教程]使用Javascript来创建一个响应式的超酷360度全景图片查看幻灯效果...

    [Java教程]使用Javascript来创建一个响应式的超酷360度全景图片查看幻灯效果 0 2015-07-23 18:00:14 360度的全景图片效果常常可以用到给客户做产品展示,今天这里我们 ...

  7. Java 创建一个HashMap对象,并在其中添加学生的姓名和成绩,键为学生姓名,值为学生成绩,使用增强for循环遍历该HashMap,并输出学生成绩。...

    |--需求说明 如题 |--实现思路 1.使用map.containsKey()判断输入的姓名在不在map里面,如果在就打印 2.遍历全班姓名和成绩,需要创建Map.entry,然后在map.entr ...

  8. 《Effective Java》 第一讲:创建和销毁对象

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.用静态工厂方法代替构造器 用静态工厂的优点 : 1. 方法有名字,更好理解. 2.不必每次调用的 ...

  9. java反射基础_Java反射基础(一)--Class对象获取

    ClassesJava中,任何一个对象要么是一个引用类型要么是基本数据类型.引用类型指的是那些直接或间接 Java.lang.Object的类.Classse,enum,和接口都是应用类型.基本类型是 ...

最新文章

  1. Oracle For 循环,字符串拼接,查找
  2. 用于改善质量、稳定性和多样性的可增长式GAN
  3. android开发启动画面,Android开发笔记——如何正确实现App启动页
  4. URLCache探索
  5. datax 模板_datax模板
  6. 编程语言排行分析,从2009到2019。
  7. 如何 把 laravel model 的主键修改为字符串类型
  8. Zend Studio配置:使用PHP 7进行开发
  9. java 验证码识别_java验证码识别
  10. CFT每日一题之 天下武功,唯快不破
  11. 计算机瑞士留学经验,瑞士留学生活分享
  12. 基于卷积神经网络 CNN 的猫狗识别详细过程
  13. 【天下有春】七日之书
  14. 6.1 matlab数值微分与数值积分
  15. 哈工大计算机系统2022年秋程序人生大作业
  16. 加利福尼亚大学提出从「因果革命」的七大成就中为「机器学习」寻求良好的模型指导
  17. java swing 收银系统,Swing做的简单超市收银系统
  18. 基于Python+django的航班查询与推荐-计算机毕业设计
  19. 微软官方SQLHELPER类,很实用,中文注释
  20. 小型主机台式计算机,可能是最便宜的入门nas小主机

热门文章

  1. spring mvc事务没有生效的原因
  2. Realm及相关对象——《跟我学Shiro》
  3. 后台开发技术(1)--概述
  4. Python r‘‘, b‘‘, u‘‘, f‘‘ 的含义
  5. Android --- no module 问题
  6. Data source rejected establishment of connection, message from server: Too many connections
  7. centos linux编译c,紧急提醒!Linux是如何编译C语言程序文件的?CentOS 8的gcc使用方法介绍...
  8. 2018计算机一级题库百度云,2018年全国计算机一级考试题库及答案
  9. python3.8安装pygame_Python3.8安装Pygame教程步骤详解
  10. 数据中心业界需要新的设计标准