2 qq 33777968 qq_33777968 于 2016.02.27 12:21 提问

PowerMockito来mock 构造函数的问题

public class HttpProtocolHandler {

private static HttpProtocolHandler httpProtocolHandler  = new HttpProtocolHandler();

public static HttpProtocolHandler getInstance() {
    return httpProtocolHandler;
}

   /**
 * 私有的构造方法
 */
private HttpProtocolHandler() {
    connectionManager= new PoolingHttpClientConnectionManager();
    connectionManager.setMaxTotal(200);
}

public TwoTuple<Integer,String> execute(HttpUriRequest request) throws Exception {

   //中间省略
    return new TwoTuple<Integer,String>(HttpStatus.SC_OK,null);
}
}

被测代码如上,测试代码如下,但是mock不生效。
我现在要mock HttpProtocolHandler.getInstance().execute(httpPost)的返回结果,测试代码哪里不对,新手求大神帮助解决,谢谢

@RunWith(PowerMockRunner.class)

@PrepareForTest(HttpProtocolHandler.class)
public class httpTest(){

@Test
public void test(){

    TwoTuple<Integer,String> rep = new TwoTuple<Integer, String>(1,"test1234567");

    HttpProtocolHandler mock = PowerMockito.spy(HttpProtocolHandler.getInstance());

    PowerMockito.whenNew(HttpProtocolHandler.class).withNoArguments().thenReturn(mock);
    PowerMockito.doReturn(rep).when(mock).execute((HttpUriRequest)Mockito.any());

    String url = "www";
    HttpPost httpPost = new HttpPost(url);
    TwoTuple<Integer,String> result11 = HttpProtocolHandler.getInstance().execute(httpPost);
    logger.info(result11.toString())
}

}

1个回答

devmiao
devmiao   Ds   Rxr 2016.02.28 07:00
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
powermock 模拟构造函数
注意的开始两行的2个注解 @RunWith 和 @PrepareForTest @RunWith比较简单,后面始终是PowerMockRunner.class @PrepareForText后面需要加的是调用构造函数的类名,而不是有构造函数的类本身。 在下面的例子中,我们要测试的类是:Helper, 在Helper类中调用了Somthing类的构造函数来创建实例。 @RunWith
PowerMock详解
powermockito的使用 PowerMock有两个重要的注解: @RunWith(PowerMockRunner.class) @prepareForTest({MyObect.class}) @PrepareForTest注解和@RunWith注解是结合使用的,不要单独使用它们中的任何一个,否则不起作用。当用 PowerMock去mock静态,final或者私有方
powermock如何阻止静态代码块和调用私有方法
在项目中进行单元测试,发现很多类都采用了静态代码块,而静态代码块在class被rongqi
使用Powermock和Mockito测试静态方法
使用Powermock和Mockito测试静态方法 转自:http://heipark.iteye.com/blog/1666681 1. 加入依赖包(maven) org.powermock powermock-api-mockito 1.4.10 test org.powermock powermock-module-junit4 1.4.10 test
如何用PowerMock进行Spy一个抽象类
最近看到了PowerMock,想用使用Mockito方法的地方改使用PowerMock的方法。以为把Import改了应该就没问题了,但在Spy抽象类时出了问题。 Mockito代码:   AbstractProxy abstractProxy = spy(AbstractProxy.class); 在换成Powermock的spy方法后报错了,原因是Powermock的spy方法是voi
用PowerMockito来mock私有方法(慎重!)
用PowerMockito来mock私有方法(慎重!) 转自:http://blog.sina.com.cn/s/blog_6176c38201014dg1.html     话说我们做的所谓的接口测试真的是不伦不类啊,测的是controller层,那叫接口木??!!可是老大们说写的是接口测试,那就接口吧!     自接手写这个接口测试不久,很多人,包括一个关系比较好的架构师就跟我说,写
使用powerMock和mockito模拟静态方法和私有方法
首先我们要导入相应的包 org.powermock powermock-api-mockito 1.4.12 test org.mockito mockito-all 1.8.5 test org.powermock powermock-mod
Powermock私有方法
简单笔记下,如有以下待测方法callSumXX,其调用了private方法sumXX 可以直接mock掉callSumXX,传送门:Mockito在Maven junit测试中的应用 如果方法中还有其他待测逻辑等原因不能直接mock掉的话,这里就需要去mock被调用的private方法。 public class Calculator { private int sumXX(int
如何用PowerMockito 测试静态方法
假如有下面一个类DemoStatic,它里面定义了各种静态方法,这些静态方法可能是一些Utilities方法,辅助其它的类。package mock.demo;public class DemoStatic { public static String sayHello() { return "Hello"; } public static String saySomething(String
powermock mock 静态类,静态属性
1.PowerMockito 版本问题 1.6.0 update to 1.6.1 2.PowerMockito mock 静态类时初始化内存,以下顺序不能更改第二行先mock Objects.nonNull,再到第三行设置一把静态类         PowerMockito.mockStatic(Objects.class);         BDDMockito.given(O