如何使用Mockito进行模拟,然后用参数进行回答



我正在使用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一起使用:

相关内容

  • 没有找到相关文章

最新更新