PowerMockitoを使用してjava.time.ZonedDateTimeのモックを作成しようとしましたが、私はZonedDateTimeのモックオブジェクトを期待していました。代わりに、実際のオブジェクトが作成されているので、私はZonedDateTimeクラスのメソッドを疑似できません。Powermockはjava.time.ZonedDateTimeのモックを作成しません
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)
は、私は、オブジェクトを印刷しようとすると、私は例外 System.out.println(attribute.toString());
次取得するには、次の行を使用して作成した私のコードスニペット
これに加えて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
}
}
です
誰かがこの回避策を手伝ってもらえますか?私はGitHubの問題を作成する必要がありますか?