logo

Metode Mockita

Okvir Mockito pruža razne metode kao što su mock(), verify(), when() itd., koje se koriste za testiranje Java aplikacija. Korištenje ovih unaprijed definiranih metoda čini testiranje vrlo lakim.

U nastavku je dat kratak opis Mockito metoda:

gdje je tipka za umetanje na tipkovnici laptopa

Mockito mock() metoda

Koristi se za stvaranje lažnih objekata dane klase ili sučelja. Mockito sadrži pet oponašanje() metode s različitim argumentima. Kada nismo ništa dodijelili mockovima, oni će vratiti zadane vrijednosti. Svih pet metoda obavljaju istu funkciju ismijavanja objekata.

Slijede metode mock() s različitim parametrima:

    metoda mock() s klasom:Koristi se za stvaranje lažnih objekata konkretne klase ili sučelja. Uzima naziv klase ili sučelja kao parametar.
    Sintaksa: ismijavanje (klasa classToMock)metoda mock() s odgovorom:Koristi se za stvaranje lažnih objekata klase ili sučelja s određenom procedurom. To je napredna lažna metoda koja se može koristiti pri radu s naslijeđenim sustavima. Uzima Answer kao parametar zajedno s nazivom klase ili sučelja. Odgovor je popis unaprijed konfiguriranih lažnih odgovora.
    Sintaksa: mock(Class classToMock, Odgovor defaultAnswer)metoda mock() s MockSettings:Koristi se za stvaranje lažnih objekata s nekim nestandardnim postavkama. Uzima MockSettings kao dodatni parametar postavke uz naziv klase ili sučelja. MockSettings omogućuje stvaranje lažnih objekata s dodatnim postavkama.
    Sintaksa: mock(Class classToMock, MockSettings mockSettings)metoda mock() s ReturnValues:Omogućuje stvaranje lažnih objekata dane klase ili sučelja. Sada je zastario jer su povratne vrijednosti zamijenjene odgovorom.
    Sintaksa: mock(Class classToMock, ReturnValues ​​returnValues)metoda mock() sa Stringom:Koristi se za stvaranje lažnih objekata određivanjem lažnih imena. U otklanjanju pogrešaka, imenovanje lažnih objekata može biti od pomoći, dok je loš izbor korištenje s velikim i složenim kodom.
    Sintaksa: mock(klasa classToMock, naziv niza)

Sljedeći isječak koda pokazuje kako se koristi oponašanje() metoda:

 ToDoService doService = mock(ToDoService.class); 

Metoda Mockito when().

Omogućuje metode zabijanja. Trebalo bi se koristiti kada želimo ismijavati vraćanje određenih vrijednosti kada se pozivaju određene metode. Jednostavno rečeno, ' Kada poziva se metoda XYZ(), zatim vrati ABC.' Uglavnom se koristi kada postoji neki uvjet za izvršenje.

Sintaksa: when(T methodCall)

Sljedeći isječak koda pokazuje kako koristiti metodu when():

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

U gornjem kodu, thenReturn() uglavnom se koristi s kada() metoda.

Mockito verify() metoda

The potvrdi() metoda se koristi za provjeru jesu li neke navedene metode pozvane ili ne. Jednostavno rečeno, potvrđuje određeno ponašanje koje se dogodilo jednom u testu. Koristi se na dnu koda za testiranje kako bi se osiguralo pozivanje definiranih metoda.

Okvir Mockito prati sve pozive metoda s njihovim parametrima za objekte ismijavanja. Nakon ismijavanja možemo provjeriti jesu li definirani uvjeti ispunjeni ili ne pomoću metode verify(). Ova vrsta testiranja ponekad je poznata kao testiranje ponašanja. Provjerava je li metoda pozvana s pravim parametrima umjesto provjere rezultata poziva metode.

Metoda verify() također se koristi za testiranje broja poziva. Dakle, možemo testirati točan broj pozivanja pomoću metoda puta, metoda barem jednom, i najviše metoda za ismijanu metodu.

Postoje dvije vrste verify() metoda dostupnih u klasi Mockito, koje su dane u nastavku:

    verify() metoda:Potvrđuje da se određeno ponašanje dogodilo jednom.
    Sintaksa: potvrdi (T mock)verify() metoda s VerificationMode:Provjerava da se neko ponašanje dogodilo barem jednom, točan broj puta ili nikada.
    Sintaksa: potvrdi (T mock, način VerificationMode)

Mockito spy() metoda

Mockito pruža metodu za djelomično ismijavanje objekta, koja je poznata kao špijun metoda. Kada se koristi metoda špijuniranja, postoji stvarni objekt, a od tog stvarnog objekta stvaraju se špijuni ili zaglavci. Ako ne zaglavimo metodu koristeći spy, ona će nazvati ponašanje prave metode. Glavna funkcija metode spy() je da nadjačava specifične metode stvarnog objekta. Jedna od funkcija metode spy() je provjera pozivanja određene metode.

Postoje dvije vrste metoda spy() koje su dostupne u Mockito klasi:

    spy() metoda:Stvara špijun pravog objekta. Špijunska metoda poziva prave metode osim ako nisu zaglavljene. Trebali bismo pažljivo i povremeno koristiti prave špijune, na primjer, kada radimo s naslijeđenim kodom.
    Sintaksa: špijun (T objekt)metoda spy() s klasom:Stvara špijunski objekt na temelju klase umjesto objekta. Metoda spy(T object) posebno je korisna za špijuniranje apstraktnih klasa jer se one ne mogu instancirati.
    Sintaksa: špijun (klasa classToSpy)

Sljedeći isječak koda pokazuje kako koristiti metodu spy():

 List spyArrayList = spy(ArrayList.class); 

Mockito reset() metoda

Metoda Mockito reset() koristi se za resetiranje mokova. Uglavnom se koristi za rad s injektiranim modelima spremnika. Obično metoda reset() rezultira dugim kodom i lošim testovima. Bolje je stvarati nove mockete nego koristiti metodu reset(). Zbog toga se metoda reset() rijetko koristi u testiranju.

Potpis metode reset() je:

'eulerov broj u Javi'
 public static void reset(T ... mocks) { MOCKITO_CORE.reset(mocks); } 

Mockito verifyNoMoreInteractions() metoda

Koristi se za provjeru ima li neki od danih mokova neprovjerene interakcije. Ovu metodu možemo upotrijebiti nakon provjere svih mockova, kako bismo bili sigurni da ništa drugo nije pozvano na mockovima. Također otkriva neprovjerene pozive koji se javljaju prije testne metode, na primjer, u setup(), @Before metodi ili konstruktoru. To je izborna metoda i ne moramo je koristiti u svakom testu.

Potpis metode verifyNoMoreInteractions() je:

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

Mockito metoda verifyZeroInteractions().

Provjerava da nije došlo do interakcije na danim mockovima. Također detektira pozivanja koja su se dogodila prije test metode, na primjer, u setup(), @Before metodi ili konstruktoru.

Potpis metode verifyZeroInteractions() je:

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

Mockito doThrow() metoda

Koristi se kada se prekida void metoda za izbacivanje iznimke. Stvara novu instancu iznimke za svaki poziv metode. Postoje dvije vrste doThrow() metoda dostupnih u klasi Mockito s različitim parametrima, kao što je prikazano u nastavku:

    doThrow() metoda s Throwable:Ova metoda se koristi kada želimo prekinuti void metodu s iznimkom. Sintaksa: dobaciti (može se baciti da se baci)
    Potpis metode doThrow() je:
 public static Stubber doThrow(Throwable toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsException(toBeThrown)); } 
    doThrow() metoda s klasom:Ova se metoda koristi kada želimo ubaciti void metodu da bismo izbacili iznimku određene klase.
    Sintaksa: dobaci(razred za bacanje)
    Potpis metode doThrow() je:
 public static Stubber doThrow(Class toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsExceptionClass(toBeThrown)); } 

Mockito doCallRealMethod() metoda

Koristi se kada želimo pozvati stvarnu implementaciju metode. Drugim riječima, koristi se za stvaranje djelomičnih ismijavanja objekta. Koristi se u rijetkim situacijama, kao što je pozivanje pravih metoda. Slična je metodi spy(), a jedina je razlika što rezultira složenim kodom.

Potpis metode doCallRealMethod() je:

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

Mockito doAnswer() metoda

Koristi se kada želimo zaglaviti void metodu generičkom vrstom odgovora. Potpis metode doAnswer() je:

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

Mockito doNothing() metoda

Koristi se za postavljanje void metoda da ne rade ništa. Metoda doNothing() koristi se u rijetkim situacijama. Prema zadanim postavkama, metode void na lažnim instancama ne rade ništa, tj. ne izvršava se zadatak.

Potpis metode doNothing() je:

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

Mockito doReturn() metoda

Koristi se u onim rijetkim prilikama kada ne možemo koristiti Mockito.when(object). Metoda Mockito.when(object) uvijek se predlaže za zatvaranje jer je sigurna za tip argumenta i čitljivija je u usporedbi s metodom doReturn().

Potpis metode doReturn() je:

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

Mockito inOrder() metoda

Koristi se za stvaranje objekata koji omogućuju provjeru mokova određenim redoslijedom. Provjera izvršena redom je fleksibilnija jer ne moramo provjeravati sve interakcije. Moramo provjeriti samo one interakcije koje su zainteresirane za testiranje (redom). Također možemo koristiti metodu inOrder() za stvaranje inOrder objekta koji prosljeđuje mokove koji su relevantni za provjeru redoslijeda.

Potpis metode Mockito.inOrder() je:

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

Mockito ignoreStubs() metoda

Koristi se za ignoriranje zaglavljenih metoda danih mokova za provjeru. Korisno je s metodama verifyNoMoreInteraction() ili verification inOrder(). Također pomaže u izbjegavanju suvišne provjere prekinutih poziva.

Potpis metode ignoreStubs() je:

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

Metoda Mockito times().

Koristi se za provjeru točnog broja pozivanja metode, što znači da deklarira koliko je puta metoda pozvana. Potpis metode times() je:

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

Metoda Mockito never().

Koristi se za provjeru da se interakcija nije dogodila. Potpis never() metode je:

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

Metoda Mockito atLeastOnce().

Koristi se za provjeru pozivanja barem jednom, što znači da se metoda treba pozvati barem jednom.

životni ciklus razvoja softvera

Potpis metode atLeastOnce() je:

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

Metoda Mockito atLeast().

Koristi se za provjeru pozivanja najmanje x broj puta. Na primjer, dano atLeast(3) znači da će se metoda pozvati najmanje tri puta.

Potpis metode atLeast() je:

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

Metoda Mockito atMost().

Koristi se za provjeru pozivanja najviše x broj puta. Na primjer, dano atMost(3) znači da će se metoda pozvati najviše tri puta.

Potpis metode atMost() je:

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

Mockito calls() metoda

Omogućuje nepohlepnu provjeru reda. Može se koristiti samo s metodom provjere inOrder(). Na primjer, inOrder.verify(mock, calls(3)).xyzMethod('...');

Potpis metode calls() je:

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

Mockito only() metoda

Provjerava je li dana metoda bila jedina pozvana metoda. Potpis metode only() je:

pogreška: nije moguće pronaći ili učitati glavnu klasu
 public static VerificationMode only() { return VerificationModeFactory.only(); } 

Mockito timeout() metoda

Omogućuje Mockitu provođenje provjere s vremenskim ograničenjem. Upućuje potvrdu da čeka određeni vremenski period za određenu interakciju umjesto da odmah padne. Može biti korisno za testiranje u postojećim situacijama.

Metoda timeout() razlikuje se od metode after() po tome što metoda after() čeka cijeli period osim ako se deklarira konačni rezultat, dok će se metoda timeout() zaustaviti čim prođe provjera. Rijetko se koristi u testiranju.

Potpis metode timeout() je:

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

Mockito after() metoda

Omogućuje Mockitu provjeru tijekom određenog vremenskog razdoblja. Već smo raspravljali o tome da se metoda after() razlikuje od metode timeout().

Potpis metode after() je:

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

Metoda Mockito validateMockitoUsage().

Koristi se za eksplicitnu provjeru stanja okvira za otkrivanje nevažeće upotrebe okvira Mockito. To je izborna značajka Mockita jer cijelo vrijeme potvrđuje korištenje. I ugrađeni pokretač (MockitoJUnitRunner) i pravilo (MockitoRule) pozivaju metodu validateMockitoUsage() nakon svake testne metode.

Potpis metode validateMockitoUsage() je:

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

Metoda Mockito withSettings().

Koristi se za stvaranje mocka s dodatnim postavkama mocka. Trebalo bi ga povremeno koristiti u testiranju. Umjesto korištenja metode withSettings(), izradite jednostavne testove pomoću jednostavnih mockova. Glavni razlozi za korištenje MockSettings su

  • Korištenjem MockSettinga možemo lako dodati druge lažne postavke kada je to potrebno.
  • Kombinira različite lažne postavke bez zabrljanja koda.

Potpis metode withSettings() je:

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