Mockito Verify Cookbook

1. Áttekintés

Ez a szakácskönyv szemlélteti hogyan kell használni a Mockito igazolást különféle használati esetekben.

A a szakácskönyv formátuma példaértékű praktikus - nincs szükség idegen részletekre és magyarázatokra.

Mi leszünk gúnyolva egy egyszerű listát végrehajtás:

public class A MyList kiterjeszti az AbstractList {@Orride public String get (final int index) {return null; } @Orride public int size () {return 0; }} 

2. Szakácskönyv

ellenőrizze az egyszerű invokációt a modellen

List mockedList = gúny (MyList.class); mockedList.size (); ellenőrizze (mockedList) .size ();

ellenőrizze az álral való interakciók számát

List mockedList = gúny (MyList.class); mockedList.size (); ellenőrizze (mockedList, times (1)). size ();

ellenőrizze, hogy nem történt-e kölcsönhatás az egész gúnnyal

List mockedList = gúny (MyList.class); VerifyZeroInteractions (mockedList);

ellenőrizze, hogy nem történt-e interakció egy adott módszerrel

List mockedList = gúny (MyList.class); ellenőrizze (mockedList, times (0)). size ();

ellenőrizze, hogy nincsenek-e váratlan interakciók - ennek meghiúsulhat:

List mockedList = gúny (MyList.class); mockedList.size (); mockedList.clear (); ellenőrizze (mockedList) .size (); VerifyNoMoreInteractions (mockedList);

ellenőrizze az interakciók sorrendjét

List mockedList = gúny (MyList.class); mockedList.size (); mockedList.add ("egy paraméter"); mockedList.clear (); InOrder inOrder = Mockito.inOrder (mockedList); inOrder.verify (mockedList) .size (); inOrder.verify (mockedList) .add ("egy paraméter"); inOrder.verify (mockedList) .clear ();

hogy nem történt-e kölcsönhatás

List mockedList = gúny (MyList.class); mockedList.size (); verify (mockedList, never ()). clear ();

ellenőrizze, hogy interakció történt-e legalább bizonyos számú alkalommal

List mockedList = gúny (MyList.class); mockedList.clear (); mockedList.clear (); mockedList.clear (); ellenőrizze (mockedList, atLeast (1)). clear (); verify (mockedList, atMost (10)). clear ();

pontos érveléssel való kölcsönhatás ellenőrzése

List mockedList = gúny (MyList.class); mockedList.add ("teszt"); verify (mockedList) .add ("teszt");

ellenőrizze a rugalmas / bármilyen argumentummal való interakciót

List mockedList = gúny (MyList.class); mockedList.add ("teszt"); verify (mockedList) .add (anyString ());

ellenőrizze az interakciót az argumentum rögzítésével

List mockedList = gúny (MyList.class); mockedList.addAll (Lists. newArrayList ("someElement")); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass (List.class); ellenőrizze (mockedList) .addAll (argumentCaptor.capture ()); List capturedArgument = argumentCaptor. getValue (); assertThat (capturedArgument, hasItem ("someElement"));

3. Következtetés

Ez a formátum egy kísérlet - közzéteszek néhány belső fejlesztési szakácskönyvemet egy adott témában - a Google Guava, Hamcrest és most Mockito. A cél az, hogy ezek az információk könnyen elérhetőek legyenek online - és kiegészüljenek velük, amikor új hasznos példával találkozom.

Mindezen példák és kódrészletek megvalósítása megtalálható a GitHub oldalon - ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.