Den Typ eines Parameters prüft man so:
1 |
verify(myMock).myMethod(isA(MyType.class)); |
Aber was, wenn man auf einen bestimmten Übergabeparameter und dessen parametrisierten Typ prüfen will?
1 2 3 4 5 6 7 8 9 10 11 12 |
// given @SuppressWarnings("unchecked") Class<List<MyType>> parameterizedClass = (Class<List<MyType>>) (Class) List.class; ArgumentCaptor<List<MyType>> argument = ArgumentCaptor.forClass(parameterizedClass); // when: myInstance.onServerEvent(..) is called myInstance.onServerEvent(someServerEvent()); // then: myMock.myMethod(..) is called with a list of MyType verify(myMock, times(1)).myMethod(argument.capture()); assertTrue(argument.getValue().size() == 1); assertTrue(argument.getValue().get(0) instanceof MyType); // might be redundant |