Quantcast
Channel: Using Mockito to mock classes with generic parameters - Stack Overflow
Viewing all articles
Browse latest Browse all 13

Answer by vogella for Using Mockito to mock classes with generic parameters

$
0
0

With JUnit5 I think the best way is to @ExtendWith(MockitoExtension.class) with @Mock in the method parameter or the field.

The following example demonstrates that with Hamcrest matchers.

package com.vogella.junit5;                                                                    import static org.hamcrest.MatcherAssert.assertThat;                                           import static org.hamcrest.Matchers.hasItem;                                                   import static org.mockito.Mockito.verify;                                                      import java.util.Arrays;                                                                       import java.util.List;                                                                         import org.junit.jupiter.api.Test;                                                             import org.junit.jupiter.api.extension.ExtendWith;                                             import org.mockito.ArgumentCaptor;                                                             import org.mockito.Captor;                                                                     import org.mockito.Mock;                                                                       import org.mockito.junit.jupiter.MockitoExtension;                                             @ExtendWith(MockitoExtension.class)                                                            public class MockitoArgumentCaptureTest {                                                          @Captor                                                                                        private ArgumentCaptor<List<String>> captor;                                                   @Test                                                                                          public final void shouldContainCertainListItem(@Mock List<String> mockedList) {                    var asList = Arrays.asList("someElement_test", "someElement");                                 mockedList.addAll(asList);                                                                     verify(mockedList).addAll(captor.capture());                                                   List<String> capturedArgument = captor.getValue();                                             assertThat(capturedArgument, hasItem("someElement"));                                      }                                                                                          }                                                                                              

See https://www.vogella.com/tutorials/Mockito/article.html for the required Maven/Gradle dependencies.


Viewing all articles
Browse latest Browse all 13


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>