Ike*_*ayo 6 java unit-testing mocking mockito
我有这样的东西(它是第三方库,所以我必须使用这个设计):
ClassA.conn1.getObjectA().getIntValue()
Run Code Online (Sandbox Code Playgroud)
ClassA 是一个普通的类,里面有一个公共静态字段(conn1)。这个 conn1 是一个类,它有一个连接和一些在应用程序中使用的其他值(在我的例子中是 ObjectA)。
这个值作为参数在我模拟的 dao 中传递。该值被模拟为 Matchers.anyInt() 但我得到一个 NullPointerException 因为 conn1 为空(不是预期的 int)
我尝试了一些 PowerMockito,WhiteBox,但没有成功。现在我已经这样做了,但我得到了相同的 NullPointerException
Mockito.when(ClassA.conn1.getObjectA()).thenReturn(new ObjectA(2));
Run Code Online (Sandbox Code Playgroud)
问题是,我如何模拟它以获取 ObjectA 或 ObjectA 的 int 值
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16200 次 |
| 最近记录: |