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 konfigurálja a több hívás viselkedését konfigurálja a kém viselkedését configure metódus úgy hívja meg a valódi, mögöttes metódust, hogy egy modellen meghívja konfigurálja a próbamódszer-hívást az egyéni Válasz segítségével 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.MyList listMock = Mockito.mock (SajátLista.osztály); doThrow (NullPointerException.class) .mikor (listMock) .clear (); listMock.clear ();
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
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
MyList listMock = Mockito.mock (SajátLista.osztály); mikor (listMock.size ()). thenCallRealMethod (); assertThat (listMock.size (), egyenlőTo (1));
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