logo

Metody Mockito

Rámec Mockito poskytuje řadu metod, jako je mock(), ověřit(), když() atd., které se používají k testování aplikací Java. Použití těchto předdefinovaných metod velmi usnadňuje testování.

Stručný popis metod Mockito je uveden níže:

Intellij idea vs eclipse

Mockito mock() metoda

Používá se k vytváření falešných objektů dané třídy nebo rozhraní. Mockito jich obsahuje pět falešný() metody s různými argumenty. Když jsme mockům nic nepřiřadili, vrátí výchozí hodnoty. Všech pět metod plní stejnou funkci zesměšňování objektů.

Níže jsou uvedeny metody mock() s různými parametry:

    mock() metoda s Class:Používá se k vytváření falešných objektů konkrétní třídy nebo rozhraní. Jako parametr bere třídu nebo název rozhraní.
    Syntax: zesměšňovat (třída třídyToMock)mock() metoda s odpovědí:Používá se k vytváření falešných objektů třídy nebo rozhraní se specifickou procedurou. Jde o pokročilou simulovanou metodu, kterou lze použít při práci se staršími systémy. Jako parametr bere odpověď spolu s názvem třídy nebo rozhraní. Odpověď je výčet předem nakonfigurovaných falešných odpovědí.
    Syntax: mock(třída třídyToMock, odpověď defaultAnswer)mock() metoda s MockSettings:Používá se k vytváření falešných objektů s některými nestandardními nastaveními. Používá MockSettings jako další parametr nastavení spolu s názvem třídy nebo rozhraní. MockSettings umožňuje vytváření falešných objektů s dalšími nastaveními.
    Syntax: mock(Class classToMock, MockSettings mockSettings)mock() metoda s ReturnValues:Umožňuje vytváření falešných objektů dané třídy nebo rozhraní. Nyní je zastaralá, protože ReturnValues ​​jsou nahrazeny odpovědí.
    Syntax: mock(Class classToMock, ReturnValues ​​returnValues)mock() metoda s řetězcem:Používá se k vytváření falešných objektů zadáním falešných jmen. Při ladění může být užitečné pojmenování falešných objektů, zatímco použití s ​​velkým a složitým kódem je špatná volba.
    Syntax: mock(třída třídyToMock, název řetězce)

Následující fragment kódu ukazuje, jak používat falešný() metoda:

 ToDoService doService = mock(ToDoService.class); 

Metoda mockito when().

Umožňuje metody stubování. Mělo by být použito, když chceme zesměšňovat, abychom vrátili konkrétní hodnoty, když jsou volány konkrétní metody. Jednoduše řečeno, ' Když je volána metoda XYZ(), pak vrátit ABC.“ Většinou se používá, když je třeba provést nějakou podmínku.

Syntaxe: when(T methodCall)

Následující fragment kódu ukazuje, jak použít metodu when():

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

Ve výše uvedeném kódu potom Return() se většinou používá s když() metoda.

Metoda Mockito ověřit().

The ověřit () metoda se používá ke kontrole, zda jsou některé zadané metody volány nebo ne. Jednoduše řečeno, ověřuje určité chování, ke kterému došlo jednou v testu. Používá se ve spodní části testovacího kódu, aby se zajistilo, že jsou volány definované metody.

Rámec Mockito sleduje všechna volání metod s jejich parametry pro zesměšňování objektů. Po mockingu můžeme ověřit, zda jsou definované podmínky splněny nebo ne, pomocí metody ověřit(). Tento typ testování je někdy známý jako behaviorální testování. Kontroluje, zda je metoda volána se správnými parametry, namísto kontroly výsledku volání metody.

K testování počtu vyvolání se také používá metoda ověřit(). Takže můžeme otestovat přesný počet vyvolání pomocí metoda krát, alespoň jednou metoda, a nanejvýš metodou za falešnou metodu.

Ve třídě Mockito jsou k dispozici dva typy metod ověření(), které jsou uvedeny níže:

    metoda ověření():Ověřuje, že k určitému chování došlo jednou.
    Syntax: ověřit (vysmívat se)metoda ověřit() s VerificationMode:Ověřuje, že k určitému chování došlo alespoň jednou, přesně kolikrát nebo nikdy.
    Syntax: ověřit (T mock, režim VerificationMode)

Mockito spy() metoda

Mockito poskytuje metodu částečného zesměšňování objektu, která je známá jako vyzvědač metoda. Při použití špionážní metody existuje skutečný objekt a z tohoto skutečného objektu se vytvářejí špioni nebo pahýly. Pokud metodu neukončíme pomocí spy, zavolá skutečné chování metody. Hlavní funkcí metody spy() je, že potlačuje specifické metody skutečného objektu. Jednou z funkcí metody spy() je ověření vyvolání určité metody.

Ve třídě Mockito jsou k dispozici dva typy metod spy():

    metoda spy():Vytváří špióna skutečného objektu. Spy metoda volá skutečné metody, pokud nejsou potlačeny. Skutečné špiony bychom měli používat opatrně a příležitostně, například při nakládání se starším kódem.
    Syntax: špión (objekt T)metoda spy() s třídou:Vytváří špionážní objekt založený na třídě namísto objektu. Metoda spy(T object) je zvláště užitečná pro špehování abstraktních tříd, protože nemohou být vytvořeny.
    Syntax: špión(třídaToSpy)

Následující fragment kódu ukazuje, jak používat metodu spy():

 List spyArrayList = spy(ArrayList.class); 

Metoda Mockito reset().

Metoda Mockito reset() se používá k resetování maket. Používá se především pro práci s nádobami vstřikovanými maketami. Obvykle má metoda reset() za následek zdlouhavý kód a špatné testy. Je lepší vytvářet nové makety než používat metodu reset(). Proto se metoda reset() při testování používá jen zřídka.

Podpis metody reset() je:

selen výukový program java
 public static void reset(T ... mocks) { MOCKITO_CORE.reset(mocks); } 

Mockito metoda ověřeníNoMoreInteractions().

Slouží ke kontrole, zda některý z daných mocků má nějaké neověřené interakce. Tuto metodu můžeme použít po ověření všech maket, abychom se ujistili, že na makety nebylo vyvoláno nic jiného. Detekuje také neověřená vyvolání, ke kterým dochází před testovací metodou, například v setup(), @Before metodě nebo konstruktoru. Je to volitelná metoda a nemusíme ji používat v každém testu.

Podpis metody ověřeníNoMoreInteractions() je:

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

Mockito metoda ověřeníZeroInteractions().

Ověřuje, že na daných modelech nedošlo k žádné interakci. Detekuje také vyvolání, ke kterým došlo před testovací metodou, například v setup(), @Before metodě nebo konstruktoru.

Podpis metody ověřeníZeroInteractions() je:

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

Metoda Mockito doThrow().

Používá se při stub metodě void k vyvolání výjimky. Pro každé vyvolání metody vytvoří novou instanci výjimky. Ve třídě Mockito jsou k dispozici dva typy metod doThrow() s různými parametry, jak je uvedeno níže:

    doThrow() metoda s Throwable:Tato metoda se používá, když chceme stubovat metodu void s výjimkou. Syntax: doThrow (Vhazovat k BeThrown)
    Podpis metody doThrow() je:
 public static Stubber doThrow(Throwable toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsException(toBeThrown)); } 
    metoda doThrow() s třídou:Tato metoda se používá, když chceme stubovat metodu void, abychom vyvolali výjimku zadané třídy.
    Syntax: doThrow(Class toBeThrown)
    Podpis metody doThrow() je:
 public static Stubber doThrow(Class toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsExceptionClass(toBeThrown)); } 

Metoda Mockito doCallRealMethod().

Používá se, když chceme zavolat skutečnou implementaci metody. Jinými slovy, používá se k vytváření částečných simulací objektu. Používá se ve vzácných situacích, jako je volání skutečných metod. Je podobná metodě spy() a jediný rozdíl je v tom, že výsledkem je složitý kód.

Podpis metody doCallRealMethod() je:

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

Metoda Mockito doAnswer().

Používá se, když chceme stubovat metodu void s obecným typem odpovědi. Podpis metody doAnswer() je:

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

Metoda Mockito doNothing().

Používá se pro nastavení metod void, aby nic nedělaly. Metoda doNothing() se používá ve vzácných situacích. Ve výchozím nastavení nedělají metody void na falešných instancích nic, tj. neprovádí se žádná úloha.

Podpis metody doNothing() je:

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

Metoda Mockito doReturn().

Používá se při těch vzácných příležitostech, kdy nemůžeme použít Mockito.when(object). Metoda Mockito.when(object) je vždy navržena pro stubování, protože je typově bezpečná a čitelnější než metoda doReturn().

Podpis metody doReturn() je:

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

Metoda Mockito inOrder().

Používá se k vytváření objektů, které umožňují ověření mocků v určitém pořadí. Ověření prováděné v pořadí je flexibilnější, protože nemusíme ověřovat všechny interakce. Potřebujeme ověřit pouze ty interakce, které mají zájem o testování (v pořadí). Můžeme také použít metodu inOrder() k vytvoření objektu inOrder, který předává falešné efekty, které jsou relevantní pro ověření v objednávce.

Podpis metody Mockito.inOrder() je:

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

Metoda Mockito ignoreStubs().

Používá se k ignorování zakázaných metod daných simulací pro ověření. Je to užitečné s metodami ověřeníNoMoreInteractions() nebo ověření inOrder(). Pomáhá také vyhnout se nadbytečnému ověřování zablokovaných hovorů.

Podpis metody ignoreStubs() je:

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

Metoda Mockito times().

Používá se k ověření přesného počtu vyvolání metody, což znamená, že deklaruje, kolikrát byla metoda vyvolána. Podpis metody times() je:

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

Metoda Mockito never().

Slouží k ověření, že k interakci nedošlo. Podpis metody never() je:

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

Metoda Mockito atLeastOnce().

Používá se k ověření vyvolání alespoň jednou, což znamená, že metoda by měla být vyvolána alespoň jednou.

Podpis metody atLeastOnce() je:

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

Metoda Mockito atLeast().

Používá se k ověření vyvolání alespoň xkrát. Například zadané atLeast(3) znamená, že metoda bude vyvolána minimálně třikrát.

řetězec n java

Podpis metody atLeast() je:

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

Metoda Mockito atMost().

Používá se k ověření vyvolání maximálně xkrát. Například zadané atMost(3) znamená, že metoda bude vyvolána maximálně třikrát.

Podpis metody atMost() je:

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

Mockito volá metodu().

Umožňuje nezištné ověření objednávky. Lze jej použít pouze s ověřovací metodou inOrder(). Například inOrder.verify(mock, calls(3)).xyzMethod('...');

Podpis metody calls() je:

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

Metoda Mockito only().

Zkontroluje, že daná metoda byla jedinou vyvolanou metodou. Podpis metody only() je:

sanjay dutt a
 public static VerificationMode only() { return VerificationModeFactory.only(); } 

Metoda mockito timeout().

Umožňuje Mockito provádět ověření s časovým limitem. Instruuje ověření, aby po určitou dobu na konkrétní interakci čekal, než aby okamžitě selhal. Může být užitečné pro testování v existujících situacích.

Metoda timeout() se liší od metody after() tím, že metoda after() čeká celou dobu, pokud není deklarován konečný výsledek, zatímco metoda timeout() se zastaví, jakmile ověření proběhne. Při testování se používá zřídka.

Podpis metody timeout() je:

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

Metoda Mockito after().

Umožňuje Mockito ověřovat za dané časové období. Již jsme diskutovali o tom, že metoda after() se liší od metody timeout().

Podpis metody after() je:

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

Metoda Mockito validateMockitoUsage().

Používá se k explicitnímu ověření stavu rámce k detekci neplatného použití rámce Mockito. Je to volitelná funkce Mockito, protože neustále ověřuje použití. Vestavěný běžec (MockitoJUnitRunner) i pravidlo (MockitoRule) zavolají metodu validateMockitoUsage() po každé testovací metodě.

Podpis metody validateMockitoUsage() je:

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

Mockito withSettings() metoda

Používá se k vytváření maket s dalším nastavením makety. Měl by být příležitostně použit při testování. Namísto použití metody withSettings() vytvářejte jednoduché testy pomocí jednoduchých simulací. Hlavní důvody pro použití MockSettings jsou

  • Pomocí MockSettingu můžeme v případě potřeby snadno přidat další mock nastavení.
  • Kombinuje různá falešná nastavení, aniž by došlo k poškození kódu.

Podpis metody withSettings() je:

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