Mockito Overte kuchársku knihu

1. Prehľad

Táto kuchárska kniha ilustruje ako používať Mockito overiť v rôznych 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.

Budeme zosmiešňovanie jednoduchého zoznamu implementácia:

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

2. Kuchárska kniha

falošné overenie jednoduchého vyvolania

Zoznam mockedList = falošný (MyList.class); mockedList.size (); verifikácia (mockedList) .size ();

overiť počet interakcií s falošnými

Zoznam mockedList = falošný (MyList.class); mockedList.size (); verifikácia (mockedList, times (1)). size ();

overiť, že nenastala interakcia s celým falošným programom

Zoznam mockedList = falošný (MyList.class); verifyZeroInteractions (mockedList);

overiť, či nedošlo k interakcii s konkrétnou metódou

Zoznam mockedList = falošný (MyList.class); verifikácia (mockedList, times (0)). size ();

overte, či neexistujú neočakávané interakcie - malo by to zlyhať:

Zoznam mockedList = falošný (MyList.class); mockedList.size (); mockedList.clear (); verify (mockedList) .size (); verifyNoMoreInteractions (mockedList);

overiť poradie interakcií

Zoznam mockedList = falošný (MyList.class); mockedList.size (); mockedList.add ("parameter"); mockedList.clear (); InOrder inOrder = Mockito.inOrder (mockedList); inOrder.verify (mockedList) .size (); inOrder.verify (mockedList) .add ("a parameter"); inOrder.verify (mockedList) .clear ();

overiť, či nedošlo k interakcii

Zoznam mockedList = falošný (MyList.class); mockedList.size (); verifikácia (mockedList, never ()). clear ();

overiť, či došlo k interakcii minimálne určitý počet opakovaní

Zoznam mockedList = falošný (MyList.class); mockedList.clear (); mockedList.clear (); mockedList.clear (); verifikácia (mockedList, atLeast (1)). clear (); verifikácia (mockedList, atMost (10)). clear ();

overiť interakciu presným argumentom

Zoznam mockedList = falošný (MyList.class); mockedList.add ("test"); verify (mockedList) .add ("test");

overiť interakciu pomocou flexibilného / ľubovoľného argumentu

Zoznam mockedList = falošný (MyList.class); mockedList.add ("test"); verify (mockedList) .add (anyString ());

overiť interakciu pomocou zachytenia argumentu

Zoznam mockedList = falošný (MyList.class); mockedList.addAll (Zoznamy. newArrayList ("someElement")); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass (List.class); verify (mockedList) .addAll (argumentCaptor.capture ()); Zoznam captureArgument = argumentCaptor. getValue (); assertThat (capturedArgument, hasItem ("someElement"));

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