2014-10-09 101 views
2

静态字段我有这样的事情(这是一个第三方库,所以我有这样的设计工作):惩戒用的Mockito

ClassA.conn1.getObjectA().getIntValue() 

ClassA的是一个普通的类,并且里面有一个公共静态字段(conn1)。这个conn1是一个类,它有一个连接和一些在应用程序中使用的其他值(在我的情况下是ObjectA)。

这个值作为我在嘲笑道的参数传递。该值被嘲笑为Matchers.anyInt(),但我得到一个NullPointerException,因为conn1为null(不是预期的int)

我尝试了一些东西PowerMockito,WhiteBox,但没有成功。现在,我已经这样做了,但我得到了同样的NullPointerException

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

的问题是,我怎么能嘲笑它来获得对象A或对象A

回答

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

,最后一行的int值, conn1和objectA是不同的对象(事实上objectA是conn1的一个字段),所以这是行不通的 – 2014-10-09 10:02:56