Mockito Bekræft kogebog

1. Oversigt

Denne kogebog illustrerer hvordan man bruger Mockito verificere i en række forskellige tilfælde.

Det kogebogens format er eksempelvis fokuseret og praktisk - ingen fremmede detaljer og forklaringer er nødvendige.

Det bliver vi spotter en simpel liste implementering:

offentlig klasse MyList udvider AbstractList {@ Override public String get (final int index) {return null; } @ Override public int-størrelse () {return 0; }} 

2. Kogebogen

kontrollere enkel påkaldelse på mock

Liste mockedList = mock (MyList.class); mockedList.size (); verificer (mockedList) .størrelse ();

kontrollere antallet af interaktioner med mock

Liste mockedList = mock (MyList.class); mockedList.size (); verificere (mockedList, times (1)). størrelse ();

kontrollere, at der ikke fandt nogen interaktion med hele mock sted

Liste mockedList = mock (MyList.class); verificereZeroInteractions (mockedList);

kontrollere, at der ikke er sket nogen interaktion med en bestemt metode

Liste mockedList = mock (MyList.class); verificere (mockedList, times (0)). størrelse ();

kontrollere, at der ikke er nogen uventede interaktioner - dette skulle mislykkes:

Liste mockedList = mock (MyList.class); mockedList.size (); mockedList.clear (); verificere (mockedList) .størrelse (); verifyNoMoreInteractions (mockedList);

kontrollere rækkefølgen af ​​interaktioner

Liste mockedList = mock (MyList.class); mockedList.size (); mockedList.add ("en parameter"); mockedList.clear (); InOrder inOrder = Mockito.inOrder (mockedList); inOrder.verify (mockedList) .størrelse (); inOrder.verify (mockedList) .add ("en parameter"); inOrder.verify (mockedList) .clear ();

bekræft, at en interaktion ikke er sket

Liste mockedList = mock (MyList.class); mockedList.size (); verificer (mockedList, never ()). clear ();

kontrollere, at en interaktion har fundet sted mindst et bestemt antal gange

Liste mockedList = mock (MyList.class); mockedList.clear (); mockedList.clear (); mockedList.clear (); verificere (mockedList, atLeast (1)). clear (); verificere (mockedList, atMost (10)). clear ();

kontrollere interaktion med nøjagtigt argument

Liste mockedList = mock (MyList.class); mockedList.add ("test"); verificere (mockedList) .add ("test");

kontrollere interaktion med fleksibelt / ethvert argument

Liste mockedList = mock (MyList.class); mockedList.add ("test"); verificer (mockedList) .add (anyString ());

kontrollere interaktion ved hjælp af argumentoptagelse

Liste mockedList = mock (MyList.class); mockedList.addAll (Lists. newArrayList ("someElement")); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass (List.class); verificere (mockedList) .addAll (argumentCaptor.capture ()); Liste captureArgument = argumentCaptor. getValue (); assertThat (captureArgument, hasItem ("someElement"));

3. Konklusion

Dette format er et eksperiment - jeg offentliggør nogle af mine interne udviklingskogebøger om et givet emne - på Google Guava, Hamcrest og nu Mockito. Målet er at have disse oplysninger tilgængelige online - og tilføje dem, når jeg løber ind i et nyt nyttigt eksempel.

Implementeringen af ​​alle disse eksempler og kodestykker kan findes på GitHub - dette er et Maven-baseret projekt, så det skal være let at importere og køre som det er.