Mockito GregorianCalendate.getTime() 导致错误

Dro*_*tor 5 java junit mockito

我试图模拟应该是 Date() 的 GregorianCalendar.getTime() 的返回。但是我收到这个错误

org.mockito.exceptions.misusing.WrongTypeOfReturnValue: 
Date$$EnhancerByMockitoWithCGLIB$$91e3d4b7 cannot be returned by getTimeInMillis()
getTimeInMillis() should return long

Mockito.when(gregorianCalendar.getTime()).thenReturn(date);
Run Code Online (Sandbox Code Playgroud)

gregorianCalendar 和 date 都是模拟对象。

关于如何解决这个问题的任何建议?非常感谢所有帮助

Ale*_*exR 6

看一下getTime()位于GregorianCalendarnamed超类中的实现Calendar

public final Date getTime() {
    return new Date(getTimeInMillis());
}
Run Code Online (Sandbox Code Playgroud)

这意味着您可能应该尝试模拟getTimeInMillis()

Mockito.when(gregorianCalendar.getTimeInMillis()).thenReturn(date.getTime());