[英]Ignoring method calls in Mockito
使用Mockito,是否可以忽略对模拟的方法调用?
例如,对于模拟rugger
与创建mock(MyRugger.class)
class Pepe {
public void runner() {
rugger.doIt();
rugger.flushIt();
rugger.boilIt();
}
}
我只需要测试runner()
但要避免方法flushIt()
要在Mockito中重置模拟,只需在其上调用reset
。 请注意上面链接中提到的非常实际的问题, 有关reset
的JavaDoc指出它可能表示不良的设计。
通常应该避免这种情况,但是有时您只是需要这样做。 以下是有关如何使用它的示例, 而不是何时使用它的好示例。
Object value = mock(Object.class);
when(value.equals(null)).thenReturn(true);
assertTrue(value.equals(null));
verify(value).equals(null);
reset(value);
assertFalse(value.equals(null));
verify(value).equals(null);
Mockito很不错,除非您要求,否则不会验证电话。 因此,如果您不想验证flush()
只需验证您关心的方法:
verify(rugger).doIt();
verify(rugger).boilIt();
如果要验证未调用flush()
,请使用:
verify(rugger, never()).flush();
使用ignoreStub方法。 请参阅此处的文档:
http://static.javadoc.io/org.mockito/mockito-core/2.13.0/org/mockito/Mockito.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.