org.mockito
public interface InOrder
InOrder inOrder = inOrder(firstMock, secondMock);
inOrder.verify(firstMock).add("was called first");
inOrder.verify(secondMock).add("was called second");
As of Mockito 1.8.4 you can verifyNoMoreInteractions() in order-sensitive way. Read more: verifyNoMoreInteractions()
See examples in javadoc for Mockito
class
Modifier and Type | Method and Description |
---|---|
<T> T |
verify(T mock)
Verifies interaction happened once in order.
|
<T> T |
verify(T mock,
VerificationMode mode)
Verifies interaction in order.
|
void |
verifyNoMoreInteractions()
Verifies that no more interactions happened in order.
|
<T> T verify(T mock)
Alias to inOrder.verify(mock, times(1))
Example:
InOrder inOrder = inOrder(firstMock, secondMock);
inOrder.verify(firstMock).someMethod("was called first");
inOrder.verify(secondMock).someMethod("was called second");
See examples in javadoc for Mockito
classmock
- to be verified<T> T verify(T mock, VerificationMode mode)
InOrder inOrder = inOrder(firstMock, secondMock);
inOrder.verify(firstMock, times(2)).someMethod("was called first two times");
inOrder.verify(secondMock, atLeastOnce()).someMethod("was called second at least once");
See examples in javadoc for Mockito
classmock
- to be verifiedmode
- for example times(x) or atLeastOnce()void verifyNoMoreInteractions()
Mockito.verifyNoMoreInteractions(Object...)
because the order of verification matters.
Example:
mock.foo(); //1st
mock.bar(); //2nd
mock.baz(); //3rd
InOrder inOrder = inOrder(mock);
inOrder.verify(mock).bar(); //2n
inOrder.verify(mock).baz(); //3rd (last method)
//passes because there are no more interactions after last method:
inOrder.verifyNoMoreInteractions();
//however this fails because 1st method was not verified:
Mockito.verifyNoMoreInteractions(mock);