Mockito Kuchárka kedy / potom

1. Prehľad

Táto kuchárka ukazuje ako používať Mockito na konfiguráciu správania v rôznych príkladoch a prípadoch použitia.

The formát kuchárskej knihy je zameraný na príklad a praktické - nie sú potrebné žiadne ďalšie podrobnosti a vysvetlenia.

A samozrejme, ak sa chcete dozvedieť viac o testovaní pomocou Mockita, prečítajte si tu ďalšie články o Mockito.

Budeme zosmiešňovanie jednoduchého zoznamu implementácia - rovnaká implementácia, ktorú sme použili v predchádzajúcej kuchárskej knihe:

public class MyList extends AbstractList {@Override public String get (final int index) {return null; } @Override public int size () {návrat 1; }} 

2. Kuchárska kniha

nakonfigurovať jednoduché návratové správanie pre falošné

MyList listMock = Mockito.mock (MyList.class); when (listMock.add (anyString ())). thenReturn (false); boolean added = listMock.add (randomAlphabetic (6)); assertThat (pridané, je (nepravdivé));

nakonfigurovať návratové správanie pre falošný alternatívny spôsob

MyList listMock = Mockito.mock (MyList.class); doReturn (false) .when (listMock) .add (anyString ()); boolean added = listMock.add (randomAlphabetic (6)); assertThat (pridané, je (nepravdivé));

nakonfigurovať falošnú správu tak, aby vyvolala výnimku na volanie metódy

@Test (očakáva sa = IllegalStateException.class) public void givenMethodIsConfiguredToThrowException_whenCallingMethod_thenExceptionIsThrown () {MyList listMock = Mockito.mock (MyList.class); kedy (listMock.add (anyString ())). thenThrow (IllegalStateException.class); listMock.add (randomAlphabetic (6)); }

nakonfigurovať správanie metódy s void návratovým typom - vyvolať výnimku

MyList listMock = Mockito.mock (MyList.class); doThrow (NullPointerException.class) .when (listMock) .clear (); listMock.clear ();

nakonfigurovať správanie viacerých hovorov

MyList listMock = Mockito.mock (MyList.class); keď (listMock.add (anyString ())) .thReturn (false) .thThTh (IllegalStateException.class); listMock.add (randomAlphabetic (6)); listMock.add (randomAlphabetic (6)); // vyhodí výnimku

nakonfigurovať správanie špióna

Inštancia MyList = nový MyList (); MyList spy = Mockito.spy (inštancia); doThrow (NullPointerException.class) .when (spy) .size (); spy.size (); // vyhodí výnimku

nakonfigurovať metódu na volanie skutočnej základnej metódy

MyList listMock = Mockito.mock (MyList.class); keď (listMock.size ()). thenCallRealMethod (); assertThat (listMock.size (), equalTo (1));

nakonfigurovať falošný spôsob volania s vlastnou odpoveďou

MyList listMock = Mockito.mock (MyList.class); doAnswer (vyvolanie -> „Vždy rovnaké“). when (listMock) .get (anyInt ()); Reťazcový prvok = listMock.get (1); assertThat (prvok, je (rovná sa („Vždy rovnaká“)));

3. Záver

Tento formát je experimentom - zverejňujem niektoré svoje interné vývojové kuchárske knihy na danú tému - na stránkach Google Guava, Hamcrest a teraz Mockito. Cieľom je mať tieto informácie ľahko dostupné online - a doplniť ich, kedykoľvek narazím na nový užitočný príklad.

Implementácia všetkých týchto príkladov a útržkov kódu nájdete na GitHub - toto je projekt založený na Maven, takže by malo byť ľahké ho importovať a spustiť tak, ako je.


$config[zx-auto] not found$config[zx-overlay] not found