我想用 PowerMockito/Mockito 模拟一个类中的一个静态方法。
我对它进行了“窥探”。
我确实需要 doAnswer 方法,因为答案是根据函数的参数值自定义的。
此外,我做了类似的事情:
doAnswer(...).when(class,methodname, anyString());
这里的丑陋问题 - 抛出的异常 - 是因为:
备注:argThat 也返回 null。
这里可以做什么?:)
谢谢!
堆栈跟踪:
java.lang.NullPointerException: key can't be null
at java.lang.System.checkKey(System.java:771)
at java.lang.System.getProperty(System.java:647)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.powermock.reflect.internal.WhiteboxImpl.performMethodInvocation(WhiteboxImpl.java:2015)
at org.powermock.reflect.internal.WhiteboxImpl.doInvokeMethod(WhiteboxImpl.java:893)
at org.powermock.reflect.internal.WhiteboxImpl.invokeMethod(WhiteboxImpl.java:867)
at org.powermock.reflect.Whitebox.invokeMethod(Whitebox.java:463)
at org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:105)
稍后编辑:当你给出方法和参数时,这种类型的“何时”更加严格——如果我输入,而不是任何字符串“a”,那么一切都很好。在这个'when'中,它被认为是anyString()的结果,它是空的,它破坏了一切......