了解AnswersWithDelay Mockito

问题描述

在嘲笑中遇到了AnswerWithDelay的使用,从而在方法调用中引入了延迟。例如:

doAnswer(new AnswersWithDelay(100,new CallsRealMethods())).when(spyObject).methodName(someValue);

几乎没有疑问吗?

解决方法

请检查AnswersWithDelay源代码:

@Override
public Object answer(final InvocationOnMock invocation) throws Throwable {
    TimeUnit.MILLISECONDS.sleep(sleepyTime);
    return answer.answer(invocation);
}
  • 它会睡一段指定的时间
  • 比它返回答案

由于该类不是最终类,因此将其子类化并颠倒该顺序很简单。