package org.mockitousage.bugs; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockitousage.IMethods; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; public class ArgumentCaptorDontCapturePreviouslyVerifiedTest { @Test public void previous_verified_invocation_should_still_capture_args() { IMethods mock = mock(IMethods.class); mock.oneArg("first"); ArgumentCaptor<String> argument = ArgumentCaptor.forClass(String.class); verify(mock, times(1)).oneArg(argument.capture()); assertThat(argument.getAllValues()).hasSize(1); // additional interactions mock.oneArg("second"); argument = ArgumentCaptor.forClass(String.class); verify(mock, times(2)).oneArg(argument.capture()); assertThat(argument.getAllValues()).hasSize(2); } }