2014-11-30 5 views
0

У меня есть макет:Mockito издевались объект внезапно бросает NPE

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) 

И я NPE на client.myMethod вызов Если я сделать

println client // mock for MyGroovyBasedHttpClient with hashcode 

так 100% клиент инициализирован, а не NULL Я даже утверждаю, что из-за курения утверждают, что издевавшиеся компоненты не равны нулю. Также у меня есть дым на статическом MyGroovyBasedHttpClient createClient() Дымовых проверяет, что издевался клиент делает возвращение моих привычек ответа

Как я могу отладить такую ​​проблему?

UPD: Посмотрите, как это моя проблема: https://code.google.com/p/mockito/issues/detail?id=303

+0

Что 'someId, someStuff, otherStuff' –

+0

Привет, Я редактировал stringParam1, intParam2, stringParam3 , Вы предполагаете, что подпись метода неверна? – Sergey

+0

Что создает genericAnswer? Выполняется ли ваше NPE во время макетной настройки или внутри ответа или в коде, использующем возвращаемое значение myMethod? –

ответ

1

Существует проблема с Mockito и заводной, вам нужна дополнительная зависимость или вы можете издеваться только интерфейсы.

Для получения дополнительной информации посетите: https://github.com/cyrusinnovation/mockito-groovy-support

Выпуск 303 о Mockito проблемы с заводными классами: https://code.google.com/p/mockito/issues/detail?id=303