如何使用Mockito模拟thenAnswer参数

时间:2015-04-07 05:59:22

标签: java 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使用传递的参数,这些参数因为NPE而变为空。

  

注意:我也试过传递这样的东西。

     

when(Retrier.call(any(Callable.class),any(arg2.Class),   任何(arg3.Class)其中arg2和arg3也被嘲笑。

有关此错误的任何想法?或者成功的另一种方式?

1 个答案:

答案 0 :(得分:0)

您需要将PowerMock与Mockito一起使用才能模拟静态方法:

相关问题