2014-10-09 5 views
2

У меня есть что-то вроде этого (это библиотека третьей стороны, так что я должен работать с этим проектом):Mocking статических полей с Mockito

ClassA.conn1.getObjectA().getIntValue() 

ClassA нормальным класс, а внутри него есть общественный статическое поле (conn1). Это conn1 - это класс, который имеет соединение и некоторые другие значения, которые используются в приложении (в моем случае ObjectA).

Это значение передается как параметр в dao. Я издеваюсь. Это значение высмеивается как Matchers.anyInt(), но я получаю исключение NullPointerException, потому что conn1 имеет значение null (не ожидаемое значение int)

Я пробовал некоторые вещи PowerMockito, WhiteBox, но безуспешно. Теперь я это сделал, но я получаю тот же NullPointerException

Mockito.when(ClassA.conn1.getObjectA()).thenReturn(new ObjectA(2)); 

Вопрос заключается в том, как я могу дразнить его, чтобы получить Objecta или INT значение Objecta

ответ

1
import static x.y.z.Mockito.*; 

ObjectA objectA = mock(ObjectA.class); 
when(objectA.getIntValue()).thenReturn(1)); 

Conn conn1 = mock(Conn.class); 
when(conn1.getObjectA()).thenReturn(objectA); 

ClassA.conn1 = conn1; 
+0

О последней строке, conn1 и objectA - разные объекты (на самом деле objectA - поле conn1), так что это не работает –

Смежные вопросы