Mockito Potvrdite kuharicu
1. Pregled
Ova kuharica ilustrira kako koristiti Mockito provjeriti u raznim slučajevima upotrebe.
The format kuharice usmjeren je na primjere i praktično - nisu potrebni strani detalji i objašnjenja.
Bit ćemo ismijavajući jednostavan popis provedba:
javna klasa MyList proširuje AbstractList {@Override public String get (final int index) {return null; } @Preuzmi javnu int veličinu () {return 0; }}
2. Kuharica
provjeriti jednostavno pozivanje lažno
Popis mockedList = mock (MyList.class); mockedList.size (); provjeriti (mockedList) .size ();
provjeriti broj interakcija s mockom
Popis mockedList = mock (MyList.class); mockedList.size (); verify (mockedList, puta (1)). size ();
provjerite nije li se dogodila interakcija s cijelim lažnim porukama
Popis mockedList = mock (MyList.class); verifyZeroInteractions (mockedList);
provjeriti nije li došlo do interakcije s određenom metodom
Popis mockedList = mock (MyList.class); verify (mockedList, puta (0)). size ();
provjerite da nema neočekivanih interakcija - ovo bi trebalo uspjeti:
Popis mockedList = mock (MyList.class); mockedList.size (); mockedList.clear (); provjeriti (mockedList) .size (); verifyNoMoreInteractions (mockedList);
provjeriti redoslijed interakcija
Popis mockedList = mock (MyList.class); mockedList.size (); mockedList.add ("parametar"); mockedList.clear (); InOrder inOrder = Mockito.inOrder (mockedList); inOrder.verify (mockedList) .size (); inOrder.verify (mockedList) .add ("parametar"); inOrder.verify (mockedList) .clear ();
provjerite nije li došlo do interakcije
Popis mockedList = mock (MyList.class); mockedList.size (); verify (mockedList, never ()). clear ();
provjerite je li do interakcije došlo barem određeni broj puta
Popis mockedList = mock (MyList.class); mockedList.clear (); mockedList.clear (); mockedList.clear (); verify (mockedList, atLeast (1)). clear (); provjeri (mockedList, atMost (10)). clear ();
provjeriti interakciju s točnim argumentom
Popis mockedList = mock (MyList.class); mockedList.add ("test"); verify (mockedList) .add ("test");
provjeriti interakciju s fleksibilnim / bilo kojim argumentom
Popis mockedList = mock (MyList.class); mockedList.add ("test"); verify (mockedList) .add (anyString ());
provjeriti interakciju pomoću hvatanja argumenata
Popis mockedList = mock (MyList.class); mockedList.addAll (Lists. newArrayList ("someElement")); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass (List.class); verify (mockedList) .addAll (argumentCaptor.capture ()); Popis captureArgument = argumentCaptor. getValue (); assertThat (captureArgument, hasItem ("someElement"));
3. Zaključak
Ovaj je format eksperiment - objavljujem neke od svojih kuharskih knjiga s unutarnjim razvojem o određenoj temi - na Google Guava, Hamcrest i sada Mockito. Cilj je imati ove informacije lako dostupne na mreži - i dodati ih kad god naletim na novi koristan primjer.
Implementacija svih ovih primjera i isječaka koda može se naći na GitHubu - ovo je projekt zasnovan na Mavenu, pa bi ga trebalo biti lako uvesti i pokrenuti kakav jest.