Mockito Verify Cookbook

1. Oversikt

Denne kokeboken illustrerer hvordan du bruker Mockito verifisere i en rekke bruksområder.

De kokebokformatet er eksempelvis fokusert og praktisk - ingen fremmede detaljer og forklaringer er nødvendige.

Vi blir det spotter en enkel liste gjennomføring:

offentlig klasse MyList utvider AbstractList {@Override public String get (final int index) {return null; } @ Override public int size () {return 0; }} 

2. Kokeboken

bekrefte enkel påkallelse på mock

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

verifisere antall interaksjoner med mock

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

bekreft at det ikke skjedde noen interaksjon med hele spottet

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

bekreft at det ikke skjedde noen interaksjon med en bestemt metode

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

bekreft at det ikke er noen uventede interaksjoner - dette skal mislykkes:

Liste mockedList = mock (MyList.class); mockedList.size (); mockedList.clear (); verifisere (mockedList) .størrelse (); verifisereNoMoreInteractions (mockedList);

verifiser rekkefølgen av interaksjoner

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 ();

bekreft at en interaksjon ikke har skjedd

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

bekreft at en interaksjon har skjedd minst et visst antall ganger

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

verifisere samhandling med nøyaktig argument

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

verifisere samhandling med fleksibelt / ethvert argument

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

verifisere interaksjon ved hjelp av argumentfangst

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

3. Konklusjon

Dette formatet er et eksperiment - jeg publiserer noen av mine interne utviklingskokebøker om et gitt emne - på Google Guava, Hamcrest og nå Mockito. Målet er å ha denne informasjonen tilgjengelig online - og legge til den når jeg støter på et nytt nyttig eksempel.

Implementeringen av alle disse eksemplene og kodebiter kan du finne på GitHub - dette er et Maven-basert prosjekt, så det skal være enkelt å importere og kjøre som det er.


$config[zx-auto] not found$config[zx-overlay] not found