我刚刚开始模拟我们应用程序的不同层。我发现我的一个模拟对象在调用最终类静态方法时返回 NPE。有解决办法吗?
例如
when(mockObject.someMethod(FinalClass.staticMethod(someParam)).anotherMethodCall)
.thenReturn("someString");
最佳答案
您必须同时使用 PowerMock 和 Mockito。
我不明白您的代码片段试图做什么,但以下片段允许 Calendar
类的静态 getInstance()
方法返回模拟的日历
对象。也许这会为您指明正确的方向
在类(class)层面:
@RunWith(PowerMockRunner.class)
@PrepareForTest(Calendar.class)
public class XXXXXX {
在你的测试方法中:
PowerMockito.mockStatic(Calendar.class);
Calendar calendar = mock(Calendar.class);
when(calendar.get(eq(Calendar.HOUR_OF_DAY))).thenReturn(3);
Mockito.when(Calendar.getInstance()).thenReturn(calendar);
关于java - 使用 Mockito 调用最终类静态方法的模拟对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17083432/