Mockito嘲笑对象突然抛出NPE [英] Mockito mocked object suddenly throws 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屋!