Powermock не создает макет для java.time.ZonedDateTime

Я пытался создать макет для java.time.ZonedDateTime, используя PowerMockito, и я ожидал макет объекта для ZonedDateTime. Вместо этого создается реальный объект, и поэтому я не могу насмехаться над методами класса ZonedDateTime.

Ниже приведен мой фрагмент кода

import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

import static org.mockito.Matchers.any;
import static org.mockito.Mockito.when;
import static org.powermock.api.mockito.PowerMockito.mock;

@RunWith(PowerMockRunner.class)
@PrepareForTest({ZonedDateTime.class})
public class ZonedDateTimeTest {

    @Test
    public void test(){
        ZonedDateTime attribute = mock(ZonedDateTime.class);
        when(attribute.format(any(DateTimeFormatter.class))).thenReturn("dummy");
        //test code here
    }
}

В дополнение к этому, когда я пытаюсь напечатать объект, созданный с помощью следующей строкиSystem.out.println(attribute.toString());

Я получаю следующее исключение:

java.lang.NullPointerException at java.time.ZonedDateTime.toString(ZonedDateTime.java:2208) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at org.powermock.core.MockGateway.doMethodCall(MockGateway.java:124) at org.powermock.core.MockGateway.methodCall(MockGateway.java:185)

Может кто-нибудь, пожалуйста, помогите мне обойти это? Должен ли я создать проблему GitHub?

Ответы на вопрос(2)

Ваш ответ на вопрос