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.