我正在使用Retrier类重试失败的任务。我的代码看起来像这样。我在测试用例中使用Mockito 模拟了Retrier类
someMethod() {
Callable a = new TestingCall()
Retrier.call(a, arg2, arg3)
.....
}
我的测试代码看起来像这样。
testMymethod()
// mock(Retrier.class)
when(Retrier.call(any(Callable.class), anyObject(), anyObject()).thenAnswer(new Answer<Boolean>() {
@Override
public Boolean answer(InvocationOnMock invocation) throws Throwable {
return true;
}
});
但当我运行测试时,它在Retrier.call 中抛出一个空指针Exception
Retrier.call使用传递的参数,该参数为null,因此为NPE。
注意:我也试过传递这样的东西。
当(Retrier.call(any(Callable.class),any(arg2.class),任何(arg3.Class),其中arg2和arg3也被模拟。
对这个错误有什么想法吗?还是另一种成功的方式?
为了模拟静态方法,您需要将PowerMock与Mockito一起使用: