Mockito模拟对象突然抛出NPE

时间:2014-11-30 20:34:38

标签: java groovy mockito

我有一个模拟:

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

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

我有方法调用

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

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

println client // mock for MyGroovyBasedHttpClient with hashcode

所以100%客户端被初始化而不是NULL 我甚至讨厌模拟组件不为空的冒烟断言。 我也在静态 MyGroovyBasedHttpClient createClient()上吸烟 模拟客户端的烟雾检查确实返回我的自定义答案

我该如何调试此类问题?

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

1 个答案:

答案 0 :(得分:1)

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

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

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