Mockito mikor / akkor szakácskönyv

1. Áttekintés

Ez a szakácskönyv megmutatja hogyan kell használni a Mockitot a viselkedés konfigurálásához különféle példákban és felhasználási esetekben.

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

És természetesen, ha többet szeretne megtudni a Mockito jó teszteléséről, tekintse meg a többi Mockito cikket itt.

Mi leszünk gúnyolva egy egyszerű listát implementáció - ugyanaz a megvalósítás, amelyet az előző szakácskönyvben használtunk:

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

2. Szakácskönyv

konfigurálja az egyszerű visszaküldési magatartást

MyList listMock = Mockito.mock (SajátLista.osztály); mikor (listMock.add (anyString ())). thenReturn (false); logikai érték hozzáadva = listMock.add (randomAlphabetic (6)); assertThat (hozzáadva, van (hamis));

alternatív módon konfigurálhatja a visszaküldési viselkedést az ál számára

MyList listMock = Mockito.mock (SajátLista.osztály); doReturn (false) .when (listMock) .add (anyString ()); logikai érték hozzáadva = listMock.add (randomAlphabetic (6)); assertThat (hozzáadva, van (hamis));

állítsd be a modellt úgy, hogy kivételt dobjon a metódus hívásából

@Test (várható = IllegalStateException.class) public void givenMethodIsConfiguredToThrowException_whenCallingMethod_thenExceptionIsThrown () {MyList listMock = Mockito.mock (MyList.class); mikor (listMock.add (anyString ())). thenThrow (IllegalStateException.class); listMock.add (randomAlphabetic (6)); }

konfigurálja a void return típusú metódus viselkedését - kivételt hozhat

MyList listMock = Mockito.mock (SajátLista.osztály); doThrow (NullPointerException.class) .mikor (listMock) .clear (); listMock.clear ();

konfigurálja a több hívás viselkedését

MyList listMock = Mockito.mock (SajátLista.osztály); mikor (listMock.add (anyString ())) .thenReturn (false) .thenThrow (IllegalStateException.class); listMock.add (randomAlphabetic (6)); listMock.add (randomAlphabetic (6)); // dobja a kivételt

konfigurálja a kém viselkedését

MyList példány = new MyList (); MyList spy = Mockito.spy (példány); doThrow (NullPointerException.class) .mikor (kém) .size (); kém.méret (); // dobja a kivételt

configure metódus úgy hívja meg a valódi, mögöttes metódust, hogy egy modellen meghívja

MyList listMock = Mockito.mock (SajátLista.osztály); mikor (listMock.size ()). thenCallRealMethod (); assertThat (listMock.size (), egyenlőTo (1));

konfigurálja a próbamódszer-hívást az egyéni Válasz segítségével

MyList listMock = Mockito.mock (SajátLista.osztály); doAnswer (meghívás -> "Mindig ugyanaz"). mikor (listMock) .get (anyInt ()); String elem = listMock.get (1); assertThat (elem, is (equTo ("Mindig ugyanaz")));

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 GitHubon - ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.