【发布时间】:2016-04-28 07:29:08
【问题描述】:
我尝试使用 PowerMockito 为 java.time.ZonedDateTime 创建模拟,我期待 ZonedDateTime 的模拟对象。相反,正在创建实际对象,因此我无法模拟 ZonedDateTime 类的方法。
下面是我的代码sn-p
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 问题吗?
【问题讨论】:
标签: powermock