Java 忽略Mockito中的方法调用

Java 忽略Mockito中的方法调用,java,mockito,Java,Mockito,使用Mockito,是否可以忽略对mock的方法调用 例如,对于使用mock(MyRugger.class)创建的mockrugger: 我只需要测试runner(),但避免使用方法flushIt()在Mockito中重置模拟,只需调用它即可。请注意上面链接中提到的非常真实的问题,并指出它可能代表糟糕的设计 通常应该避免这样做,但有时您只是需要这样做。下面是一个如何使用它的示例,而不是何时使用它的好示例 Object value = mock(Object.class); when(value

使用Mockito,是否可以忽略对mock的方法调用

例如,对于使用
mock(MyRugger.class)
创建的mock
rugger


我只需要测试
runner()
,但避免使用方法
flushIt()

在Mockito中重置模拟,只需调用它即可。请注意上面链接中提到的非常真实的问题,并指出它可能代表糟糕的设计

通常应该避免这样做,但有时您只是需要这样做。下面是一个如何使用它的示例,而不是何时使用它的好示例

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中重置模拟,只需调用它。请注意上面链接中提到的非常真实的问题,并指出它可能代表糟糕的设计

通常应该避免这样做,但有时您只是需要这样做。下面是一个如何使用它的示例,而不是何时使用它的好示例

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();

Mockito很好,除非您要求,否则不会验证呼叫。因此,如果您不想验证
flush()
只需验证您关心的方法:

verify(rugger).doIt();
verify(rugger).boilIt();
如果要验证未调用
flush()
,请使用:

verify(rugger, never()).flush();

使用Ignorsub方法。请参阅此处的文档:


使用Ignorsub方法。请参阅此处的文档:


你所说的忽略是什么意思?不检查?不理它的电话?不是嘲笑吗?编辑会改变一些事情。您的类是如何通过的
rugger
?我指的是实例变量
rugger
。它是如何进入每个实例的。它是通过构造函数、setter传入的,还是内部创建的?忽略是什么意思?不检查?不理它的电话?不是嘲笑吗?编辑会改变一些事情。您的类是如何通过的
rugger
?我指的是实例变量
rugger
。它是如何进入每个实例的。它是通过构造函数、setter传入的,还是在内部创建的?