I just started mocking different layers of our application. I came to a point where one of my mock objects is returning NPE when it calls a final class static method. Is there a way around this?
eg
when(mockObject.someMethod(FinalClass.staticMethod(someParam)).anotherMethodCall)
.thenReturn("someString");
You have to use PowerMock and Mockito together.
I don't understand what your code snippet is trying to do, but the following snippets allow the static getInstance()
method of the Calendar
class to return a mocked Calendar
Object. Maybe that'll point you in the right direction
At the class level:
@RunWith(PowerMockRunner.class)
@PrepareForTest(Calendar.class)
public class XXXXXX {
In your test method:
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);
Mockito doesn't support mocking a final class.Have a look at PowerMock .It allows you to mock static methods and classes. It can work with Mockito, documentation explains how to do that.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.