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.