Mockito: argument matching

Learn
Sep 10, 2024

--

You can’t mix values with argument matchers. You can either use all values or all argument matchers.

Values versus argument matchers

when(myInstance.myMethod(1,"two", false)).thenReturn("all values here");
when(myInstance.myMethod(Mockito.eq(1), Mockito.eg("two"), Mockito.eq(false)).thenReturn("matches instead of values");

when(myInstance.myMethod(anyInt(), anyString(), anyBoolean()).thenReturn("all matchers here!");

String — contains

verify(myInstance.myMethod(Mockito.contains("MY_ABBREVIATION"));

Regular expression — matches

verify(myInstance.myMethod(Mockito.matches("%s[0-9][0-9]%s"));

same versus eq

verify(myInstance.myMethod(Mockito.same(myArgumentObjectOne)); // same instance
verify(myInstance.myMethod(Mockito.eq(myArgumentObjectOne());
// does not have to be same instance.. just equal object

--

--