Ваши проверки должны быть такими:
inOrder.verify(mockedPerson, times(3)).getAge();
inOrder.verify(mockedPerson, times(3)).getName();
Если в тесте было больше вызовов, это должно быть так:
@Test
public void testFive(){
Person mockedPerson = Mockito.mock(Person.class);
Mockito.when(mockedPerson.getAge()).thenReturn(1,2,3,4);
Mockito.when(mockedPerson.getName()).thenReturn("1","2","3");
InOrder inOrder = Mockito.inOrder(mockedPerson);
mockedPerson.getAge();
mockedPerson.getAge();
mockedPerson.getAge();
mockedPerson.getName();
mockedPerson.getName();
mockedPerson.getName();
mockedPerson.getAge();
inOrder.verify(mockedPerson, times(3)).getAge();
inOrder.verify(mockedPerson, times(3)).getName();
inOrder.verify(mockedPerson, times(1)).getAge();
}
Что происходит, когда вызов проверяется с помощьюни один второй аргумент не проверяет только 1 вызов (как если бы вы написали times(1)
), и, поскольку вы вызывали 3 раза, он завершился неудачей.
Вот почему мне нравится всегда добавлять times(x)
, это делает вещи явными.