logo

Metódy Mockito

Rámec Mockito poskytuje množstvo metód, ako napríklad mock(), over(), when() atď., ktoré sa používajú na testovanie aplikácií Java. Pomocou týchto preddefinovaných metód je testovanie veľmi jednoduché.

Stručný popis metód Mockito je uvedený nižšie:

diagram tried java

Mockito mock() metóda

Používa sa na vytváranie falošných objektov danej triedy alebo rozhrania. Mockito obsahuje päť zosmiešňovať () metódy s rôznymi argumentmi. Keď sme simuláciám nič nepriradili, vrátia predvolené hodnoty. Všetkých päť metód vykonáva rovnakú funkciu zosmiešňovania predmetov.

Nasledujú metódy mock() s rôznymi parametrami:

    mock() metóda s triedou:Používa sa na vytváranie falošných objektov konkrétnej triedy alebo rozhrania. Ako parameter berie triedu alebo názov rozhrania.
    Syntax: mock (trieda triedyToMock)mock() metóda s odpoveďou:Používa sa na vytváranie falošných objektov triedy alebo rozhrania so špecifickou procedúrou. Ide o pokročilú simulovanú metódu, ktorú možno použiť pri práci so staršími systémami. Ako parameter berie odpoveď spolu s názvom triedy alebo rozhrania. Odpoveď je zoznam vopred nakonfigurovaných falošných odpovedí.
    Syntax: mock(trieda triedyToMock, odpoveď predvolenáOdpoveď)mock() metóda s MockSettings:Používa sa na vytváranie falošných objektov s niektorými neštandardnými nastaveniami. Používa MockSettings ako ďalší parameter nastavenia spolu s názvom triedy alebo rozhrania. MockSettings umožňuje vytváranie falošných objektov s ďalšími nastaveniami.
    Syntax: mock(Class classToMock, MockSettings mockSettings)mock() metóda s ReturnValues:Umožňuje vytváranie falošných objektov danej triedy alebo rozhrania. Teraz je to zastarané, pretože ReturnValues ​​sú nahradené odpoveďou.
    Syntax: mock(trieda triedyToMock, ReturnValues ​​returnValues)mock() metóda s reťazcom:Používa sa na vytváranie falošných objektov zadaním falošných mien. Pri ladení môže byť užitočné pomenovanie falošných objektov, zatiaľ čo použitie s veľkým a zložitým kódom je zlá voľba.
    Syntax: mock(trieda triedyToMock, názov reťazca)

Nasledujúci úryvok kódu ukazuje, ako používať zosmiešňovať () metóda:

 ToDoService doService = mock(ToDoService.class); 

Mockito when() metóda

Umožňuje metódy stubovania. Mal by sa použiť, keď chceme zosmiešňovať, aby sa pri volaní konkrétnych metód vrátili konkrétne hodnoty. Zjednodušene povedané, Kedy volá sa metóda XYZ(), potom vrátiť ABC.“ Väčšinou sa používa, keď existuje nejaká podmienka na vykonanie.

Syntax: when(T methodCall)

Nasledujúci úryvok kódu ukazuje, ako použiť metódu when():

 when(mock.someCode ()).thenReturn(5); 

Vo vyššie uvedenom kóde potom Return() sa väčšinou používa s kedy() metóda.

Metóda Mockito over()

The overiť () metóda sa používa na kontrolu, či sú niektoré špecifikované metódy volané alebo nie. Jednoducho povedané, overuje určité správanie, ktoré sa stalo raz v teste. Používa sa v spodnej časti testovacieho kódu na zabezpečenie volania definovaných metód.

Rámec Mockito sleduje všetky volania metód s ich parametrami na zosmiešňovanie objektov. Po zosmiešňovaní môžeme overiť, či sú definované podmienky splnené alebo nie, pomocou metódyover(). Tento typ testovania je niekedy známy ako behaviorálne testovanie. Kontroluje, či sa metóda volá so správnymi parametrami, namiesto toho, aby kontrolovala výsledok volania metódy.

Metóda verifikovať() sa používa aj na testovanie počtu vyvolaní. Takže môžeme otestovať presný počet vyvolaní pomocou metóda krát, aspoň raz metóda, a nanajvýš metóda za zosmiešňovanú metódu.

V triede Mockito sú k dispozícii dva typy metód over() , ktoré sú uvedené nižšie:

    Overiť() metóda:Overuje, že k určitému správaniu došlo raz.
    Syntax: overiť (smiešne)Verification() metóda s VerificationMode:Overuje, že určité správanie sa stalo aspoň raz, presný počet krát alebo nikdy.
    Syntax: overiť (T mock, režim VerificationMode)

Mockito spy() metóda

Mockito poskytuje metódu čiastočného zosmiešňovania objektu, ktorá je známa ako špión metóda. Pri použití špionážnej metódy existuje skutočný objekt a z tohto skutočného objektu sa vytvárajú špióni alebo útržky. Ak nezastavíme metódu pomocou špióna, zavolá skutočné správanie metódy. Hlavnou funkciou metódy spy() je, že prepíše špecifické metódy skutočného objektu. Jednou z funkcií metódy spy() je overenie vyvolania určitej metódy.

V triede Mockito sú k dispozícii dva typy metód spy():

    Spy() metóda:Vytvára špióna skutočného objektu. Spy metóda volá skutočné metódy, pokiaľ nie sú potlačené. Skutočných špiónov by sme mali používať opatrne a príležitostne, napríklad pri práci so starým kódom.
    Syntax: špión (objekt T)metóda spy() s triedou:Vytvára špionážny objekt založený na triede namiesto objektu. Metóda spy(T object) je obzvlášť užitočná na špehovanie abstraktných tried, pretože sa nedajú vytvoriť inštanciu.
    Syntax: špión (trieda špióna)

Nasledujúci úryvok kódu ukazuje, ako používať metódu spy():

 List spyArrayList = spy(ArrayList.class); 

Mockito reset() metóda

Metóda Mockito reset() sa používa na resetovanie simulácií. Používa sa hlavne na prácu s kontajnermi vstrekovanými maketami. Výsledkom metódy reset() je zvyčajne zdĺhavý kód a slabé testy. Je lepšie vytvárať nové simulácie, než používať metódu reset(). Preto sa metóda reset() pri testovaní používa len zriedka.

Podpis metódy reset() je:

prečo reťazec nemenný v jave
 public static void reset(T ... mocks) { MOCKITO_CORE.reset(mocks); } 

Mockito metóda over NoMoreInteractions().

Používa sa na kontrolu, či niektorý z daných simulácií má nejaké neoverené interakcie. Túto metódu môžeme použiť po overení všetkých simulácií, aby sme sa ubezpečili, že na makety nebolo vyvolané nič iné. Tiež zisťuje neoverené vyvolania, ktoré sa vyskytnú pred testovacou metódou, napríklad v setup(), @Before metóde alebo v konštruktore. Je to voliteľná metóda a nemusíme ju používať pri každom teste.

Podpis metódyoverNoMoreInteractions() je:

 public static void verifyNoMoreInteractions(Object... mocks) { MOCKITO_CORE.verifyNoMoreInteractions(mocks); } 

Mockito metóda overeniaZeroInteractions().

Overuje, že na daných modeloch nedošlo k žiadnej interakcii. Tiež zisťuje vyvolania, ktoré sa vyskytli pred testovacou metódou, napríklad v setup(), @Before metóde alebo v konštruktore.

Podpis metódyoverZeroInteractions() je:

 public static void verifyZeroInteractions(Object... mocks) { MOCKITO_CORE.verifyNoMoreInteractions(mocks); } 

Mockito doThrow() metóda

Používa sa, keď stub metódu void na vyvolanie výnimky. Pre každé vyvolanie metódy vytvorí novú inštanciu výnimky. V triede Mockito sú k dispozícii dva typy metód doThrow() s rôznymi parametrami, ako je uvedené nižšie:

    doThrow() metóda s Throwable:Táto metóda sa používa, keď chceme zrušiť metódu void s výnimkou. Syntax: doThrow (Vhadzovanie do BeThrown)
    Podpis metódy doThrow() je:
 public static Stubber doThrow(Throwable toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsException(toBeThrown)); } 
    doThrow() metóda s triedou:Táto metóda sa používa, keď chceme zrušiť metódu void, aby sme vyvolali výnimku špecifikovanej triedy.
    Syntax: doThrow(Class toBeThrown)
    Podpis metódy doThrow() je:
 public static Stubber doThrow(Class toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsExceptionClass(toBeThrown)); } 

Mockito doCallRealMethod() metóda

Používa sa, keď chceme zavolať skutočnú implementáciu metódy. Inými slovami, používa sa na vytváranie čiastočných simulácií objektu. Používa sa v zriedkavých situáciách, napríklad pri volaní skutočných metód. Je podobná metóde spy() a jediný rozdiel je v tom, že výsledkom je zložitý kód.

Podpis metódy doCallRealMethod() je:

 public static Stubber doCallRealMethod() { return MOCKITO_CORE.doAnswer(new CallsRealMethods()); } 

Mockito doAnswer() metóda

Používa sa, keď chceme zrušiť metódu zrušenia pomocou všeobecného typu odpovede. Podpis metódy doAnswer() je:

 public static Stubber doAnswer(Answer answer) { return MOCKITO_CORE.doAnswer(answer); } 

Mockito doNothing() metóda

Používa sa na nastavenie metód void, aby nerobili nič. Metóda doNothing() sa používa v zriedkavých situáciách. V predvolenom nastavení metódy void na falošných inštanciách nerobia nič, t. j. nevykonáva sa žiadna úloha.

shloka mehta

Podpis metódy doNothing() je:

 public static Stubber doNothing() { return MOCKITO_CORE.doAnswer(new DoesNothing()); } 

Mockito doReturn() metóda

Používa sa pri tých zriedkavých príležitostiach, keď nemôžeme použiť Mockito.when(object). Metóda Mockito.when(object) je vždy navrhnutá na stubovanie, pretože je typovo bezpečná a čitateľnejšia v porovnaní s metódou doReturn().

Podpis metódy doReturn() je:

 public static Stubber doReturn(Object toBeReturned) { return MOCKITO_CORE.doAnswer(new Returns(toBeReturned)); } 

Metóda Mockito inOrder().

Používa sa na vytváranie objektov, ktoré umožňujú overenie falošných motívov v určitom poradí. Overenie vykonané v poradí je flexibilnejšie, pretože nemusíme overovať všetky interakcie. Musíme overiť iba tie interakcie, ktoré majú záujem testovať (v poradí). Môžeme tiež použiť metódu inOrder() na vytvorenie objektu inOrder, ktorý prechádza falošnými spôsobmi, ktoré sú relevantné pre overenie objednávky.

Podpis metódy Mockito.inOrder() je:

 public static InOrder inOrder(Object... mocks) { return MOCKITO_CORE.inOrder(mocks); } 

Mockito ignoreStubs() metóda

Používa sa na ignorovanie zakázaných metód daných simulácií na overenie. Je to užitočné s metódami authenticNoMoreInteractions() alebo overovania inOrder(). Pomáha tiež vyhnúť sa nadbytočnému overovaniu zablokovaných hovorov.

Podpis metódy ignoreStubs() je:

 public static Object[] ignoreStubs(Object... mocks) { return MOCKITO_CORE.ignoreStubs(mocks); } 

Mockito times() metóda

Používa sa na overenie presného počtu vyvolaní metódy, čo znamená, že deklaruje, koľkokrát bola metóda vyvolaná. Podpis metódy times() je:

 public static VerificationMode times(int wantedNumberOfInvocations) { return VerificationModeFactory.times(wantedNumberOfInvocations); } 

Metóda Mockito never().

Používa sa na overenie, že k interakcii nedošlo. Podpis metódy never() je:

 public static VerificationMode never() { return times(0); } 

Mockito atLeastOnce() metóda

Používa sa na overenie vyvolania aspoň raz, čo znamená, že metóda by mala byť vyvolaná aspoň raz.

Podpis metódy atLeastOnce() je:

 public static VerificationMode atLeastOnce() { return VerificationModeFactory.atLeastOnce(); } 

Mockito aspoň () metóda

Používa sa na overenie vyvolania aspoň x-krát. Napríklad zadanie atLeast(3) znamená, že metóda bude volať minimálne trikrát.

Podpis metódy atLeast() je:

 public static VerificationMode atLeast(int minNumberOfInvocations) { return VerificationModeFactory.atLeast(minNumberOfInvocations); } 

Metóda Mockito atMost().

Používa sa na overenie vyvolania najviac x-krát. Napríklad atMost(3) znamená, že metóda sa vyvolá maximálne trikrát.

Podpis metódy atMost() je:

 public static VerificationMode atMost(int maxNumberOfInvocations) { return VerificationModeFactory.atMost(maxNumberOfInvocations); } 

Mockito volá metódu().

Umožňuje nezištné overenie objednávky. Dá sa použiť iba s overovacou metódou inOrder(). Napríklad inOrder.verify(mock, calls(3)).xyzMethod('...');

Podpis metódy calls() je:

 public static VerificationMode calls( int wantedNumberOfInvocations ){ return VerificationModeFactory.calls( wantedNumberOfInvocations ); } 

Metóda Mockito only().

Skontroluje, či daná metóda bola jedinou vyvolanou metódou. Podpis metódy only() je:

v poriadku
 public static VerificationMode only() { return VerificationModeFactory.only(); } 

Metóda mockito timeout().

Umožňuje Mockito vykonať overenie s časovým limitom. Dáva overovaniu pokyn, aby počkal určitý čas na konkrétnu interakciu, namiesto toho, aby okamžite zlyhal. Môže to byť užitočné na testovanie v existujúcich situáciách.

Metóda timeout() sa líši od metódy after() tým, že metóda after() čaká celú dobu, pokiaľ nie je deklarovaný konečný výsledok, zatiaľ čo metóda timeout() sa zastaví hneď, ako overenie prebehne. Pri testovaní sa používa zriedka.

Podpis metódy timeout() je:

 public static VerificationWithTimeout timeout(long millis) { return new Timeout(millis, VerificationModeFactory.times(1)); } 

Mockito after() metóda

Umožňuje Mockito overiť počas daného časového obdobia. Už sme diskutovali o tom, že metóda after() sa líši od metódy timeout().

Podpis metódy after() je:

 public static VerificationAfterDelay after(long millis) { return new After(millis, VerificationModeFactory.times(1)); } 

Mockito validateMockitoUsage() metóda

Používa sa na explicitné overenie stavu rámca na zistenie neplatného použitia rámca Mockito. Je to voliteľná funkcia Mockito, pretože neustále overuje používanie. Vstavaný bežec (MockitoJUnitRunner) aj pravidlo (MockitoRule) volajú metódu validateMockitoUsage() po každej testovacej metóde.

Podpis metódy validateMockitoUsage() je:

 public static void validateMockitoUsage() { MOCKITO_CORE.validateMockitoUsage(); } 

Mockito withSettings() metóda

Používa sa na vytváranie simulácií s dodatočnými nastaveniami simulácie. Mal by sa používať príležitostne pri testovaní. Namiesto použitia metódy withSettings() vytvorte jednoduché testy pomocou jednoduchých simulácií. Hlavnými dôvodmi používania MockSettings sú

  • Pomocou MockSettingu môžeme v prípade potreby jednoducho pridať ďalšie falošné nastavenia.
  • Kombinuje rôzne falošné nastavenia bez toho, aby sa pokazil kód.

Podpis metódy withSettings() je:

 public static MockSettings withSettings() { return new MockSettingsImpl().defaultAnswer(RETURNS_DEFAULTS); }