我有一个模拟:
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
答案 0 :(得分:1)
mockito和groovy存在问题,您需要额外的依赖关系,或者您只能模拟接口。
欲了解更多信息,请访问: https://github.com/cyrusinnovation/mockito-groovy-support
关于groovy类的mockito问题的第303期: https://code.google.com/p/mockito/issues/detail?id=303