Mockito嘲笑对象突然抛出NPE [英] Mockito mocked object suddenly throws NPE

查看:507
本文介绍了Mockito嘲笑对象突然抛出NPE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 静态MyGroovyBasedHttpClient createClient(){
MyGroovyBasedHttpClient client = mock(MyGroovyBasedHttpClient.class );
答案< SimpleResponse> methodAnswer = createGenericAnswer();

when(client.myMethod(anyString(),anyInt(),anyString()))。thenAnswer(methodAnswer);
返回客户端;
}

我有方法调用

  def response = client.myMethod(stringParam1,intParam2,stringParam3)

我在 client.myMethod 调用中获得NPE
如果我做了

  println客户端//使用散列码模拟MyGroovyBasedHttpClient 

所以100%客户端被初始化,而不是NULL
我甚至可以冒烟的断言,嘲笑的组件不是零。
另外我在静态方法上吸烟 MyGroovyBasedHttpClient createClient()
烟雾检查模拟客户端返回我的自定义答案


如何调试此类问题?



UPD:
看起来像这是我的问题: https://code.google.com/p/mockito/issues/detail?id=303

解决方案

mockito和groovy存在一个问题,您需要额外的依赖性,或者您只能模拟接口。

欲了解更多信息,请访问:
https://github.com/cyrusinnovation/mockito-groovy-support



关于groovy类的mockito问题的第303期:
https://code.google.com/p/mockito/issues/detail?id = 303


I have a mock:

 static MyGroovyBasedHttpClient createClient(){
    MyGroovyBasedHttpClient client = mock(MyGroovyBasedHttpClient.class);
    Answer<SimpleResponse> methodAnswer = createGenericAnswer();

    when(client.myMethod(anyString(), anyInt(),anyString())).thenAnswer(methodAnswer);
    return client;
}

And I have method invocation

def response = client.myMethod(stringParam1, intParam2, stringParam3)

And I get NPE on client.myMethod invocation If i do

println client // mock for MyGroovyBasedHttpClient with hashcode

so 100% client is initialized and not NULL I even hace smoke assertions that mocked components are not null. Also I have smoke on static MyGroovyBasedHttpClient createClient() Smoke checks that mocked client does return my custom Answer

How can I debug such problem?

UPD: Look like this is my problem: https://code.google.com/p/mockito/issues/detail?id=303

解决方案

There is a problem with mockito and groovy, you need additional dependency or you can mock only interfaces.

For more info visit : https://github.com/cyrusinnovation/mockito-groovy-support

Issue 303 about mockito problem with groovy classes : https://code.google.com/p/mockito/issues/detail?id=303

这篇关于Mockito嘲笑对象突然抛出NPE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆