logo

Mockiton menetelmät

Mockito-kehys tarjoaa useita menetelmiä, kuten mock(), verify(), when() jne., joita käytetään Java-sovellusten testaamiseen. Näiden ennalta määritettyjen menetelmien käyttö tekee testaamisesta erittäin helppoa.

Mockito-menetelmien lyhyt kuvaus on alla:

java merkkijonon liittäminen

Mockito mock() -menetelmä

Sitä käytetään tietyn luokan tai käyttöliittymän valeobjektien luomiseen. Mockito sisältää viisi pilkata() menetelmiä eri argumenteilla. Kun emme määrittäneet mitään pilkkoille, ne palauttavat oletusarvot. Kaikki viisi menetelmää suorittavat saman tehtävän pilkkaamalla esineitä.

Seuraavat ovat mock()-menetelmät eri parametreilla:

    mock()-menetelmä luokassa:Sitä käytetään konkreettisen luokan tai käyttöliittymän pilkattujen objektien luomiseen. Se ottaa luokan tai käyttöliittymän nimen parametrina.
    Syntaksi: pilkata (luokka luokasta pilkaksi)mock()-menetelmä ja vastaus:Sitä käytetään luomaan luokan tai rajapinnan valeobjekteja tietyn menettelyn kanssa. Se on edistynyt valemenetelmä, jota voidaan käyttää vanhojen järjestelmien kanssa työskennellessä. Se ottaa vastauksen parametrina luokan tai käyttöliittymän nimen ohella. Vastaus on luettelo esikonfiguroiduista valevastauksista.
    Syntaksi: pilkata (luokka luokasta pilkaksi, vastauksen oletusvastaus)mock()-menetelmä MockSettingsillä:Sitä käytetään valeobjektien luomiseen joillakin ei-standardin asetuksilla. Se ottaa MockSettingsin lisäasetusparametrina luokan tai käyttöliittymän nimen ohella. MockSettings mahdollistaa valeobjektien luomisen lisäasetuksilla.
    Syntaksi: mock(Class classToMock, MockSettings mockSettings)mock()-menetelmä ReturnValuesilla:Se mahdollistaa tietyn luokan tai käyttöliittymän valeobjektien luomisen. Nyt se on vanhentunut, koska ReturnValues ​​on korvattu Answerilla.
    Syntaksi: mock(Class classToMock, ReturnValues ​​returnValues)mock()-menetelmä merkkijonolla:Sitä käytetään valeobjektien luomiseen määrittämällä valenimet. Virheenkorjauksessa valeobjektien nimeäminen voi olla hyödyllistä, kun taas se on huono valinta suuren ja monimutkaisen koodin käyttäminen.
    Syntaksi: pilkata (luokka classToMock, merkkijonon nimi)

Seuraava koodinpätkä näyttää kuinka sitä käytetään pilkata() menetelmä:

 ToDoService doService = mock(ToDoService.class); 

Mockito when() -menetelmä

Se mahdollistaa tukahdusmenetelmät. Sitä tulisi käyttää, kun haluamme pilkata tiettyjen arvojen palauttamiseksi, kun tiettyjä menetelmiä kutsutaan. Yksinkertaisin termein, ' Kun XYZ()-menetelmää kutsutaan, sitten palauta ABC.' Sitä käytetään enimmäkseen, kun on jokin ehto suoritettavana.

Syntaksi: milloin(T methodCall)

Seuraava koodinpätkä näyttää kuinka when()-menetelmää käytetään:

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

Yllä olevassa koodissa thenReturn() käytetään enimmäkseen kanssa kun() menetelmä.

Mockito verify() -menetelmä

The vahvista() -menetelmää käytetään tarkistamaan, kutsutaanko tiettyjä menetelmiä vai ei. Yksinkertaisesti sanottuna se vahvistaa tietyn toiminnan, joka tapahtui kerran testissä. Sitä käytetään testauskoodin alaosassa varmistamaan, että määritettyjä menetelmiä kutsutaan.

Mockito-kehys pitää kirjaa kaikista metodikutsuista parametreineen objektien pilkkaamiseksi. Pilkan jälkeen voimme varmistaa, että määritellyt ehdot täyttyvät vai eivät käyttämällä verify()-menetelmää. Tämäntyyppinen testaus tunnetaan joskus nimellä käyttäytymistestit. Se tarkistaa, että menetelmää kutsutaan oikeilla parametreilla sen sijaan, että se tarkastaisi menetelmäkutsun tuloksen.

Verify()-menetelmää käytetään myös kutsujen määrän testaamiseen. Joten voimme testata kutsujen tarkan määrän käyttämällä kertaa menetelmä, vähintään kerran menetelmä, ja korkeintaan menetelmällä pilkatun menetelmän vuoksi.

Mockito-luokassa on saatavilla kahdenlaisia ​​verify()-menetelmiä, jotka on annettu alla:

    verify() -menetelmä:Se vahvistaa tietyn käytöksen tapahtuneen kerran.
    Syntaksi: vahvista (T pilka)verify()-menetelmä VerificationModella:Se varmistaa, että jokin käyttäytyminen tapahtui vähintään kerran, tarkan määrän kertoja tai ei koskaan.
    Syntaksi: vahvista (T pilka, vahvistustila)

Mockito spy() -menetelmä

Mockito tarjoaa menetelmän pilkata objektia osittain, joka tunnetaan nimellä vakooja menetelmä. Vakoilumenetelmää käytettäessä on olemassa todellinen esine, ja siitä luodaan vakoojia tai tyntejä. Jos emme tukahduta menetelmää käyttämällä vakoojaa, se kutsuu menetelmän todellista käyttäytymistä. Spy()-menetelmän päätehtävä on, että se ohittaa todellisen kohteen tietyt menetelmät. Yksi spy()-menetelmän tehtävistä on, että se varmistaa tietyn menetelmän kutsun.

Mockito-luokassa on saatavilla kahdenlaisia ​​spy()-menetelmiä:

    spy() -menetelmä:Se luo vakoojan todellisesta esineestä. Vakoilumenetelmä kutsuu todellisia menetelmiä, elleivät ne ole stubed. Meidän tulee käyttää oikeita vakoojia varovasti ja satunnaisesti, esimerkiksi käsitellessään vanhaa koodia.
    Syntaksi: vakooja (T-objekti)spy()-menetelmä luokassa:Se luo vakoiluobjektin luokan perusteella objektin sijaan. Spy(T object) -menetelmä on erityisen hyödyllinen abstraktien luokkien vakoilussa, koska niitä ei voi ilmentää.
    Syntaksi: vakooja (Class classToSpy)

Seuraava koodinpätkä näyttää kuinka spy()-menetelmää käytetään:

 List spyArrayList = spy(ArrayList.class); 

Mockito reset() -menetelmä

Mockito reset() -menetelmää käytetään mockien nollaamiseen. Sitä käytetään pääasiassa työskentelyyn säiliöön ruiskutettujen pilkkien kanssa. Yleensä reset()-menetelmä johtaa pitkään koodiin ja huonoihin testeihin. On parempi luoda uusia pilkkoja kuin käyttää reset()-menetelmää. Tästä syystä reset()-menetelmää käytetään harvoin testauksessa.

Reset()-menetelmän allekirjoitus on:

python käärme vs anakonda
 public static void reset(T ... mocks) { MOCKITO_CORE.reset(mocks); } 

Mockito verifyNoMoreInteractions() -menetelmä

Sitä käytetään tarkistamaan, että jollakin annetuista pilkoista on vahvistamattomia vuorovaikutuksia. Voimme käyttää tätä menetelmää, kun olemme tarkastaneet kaiken pilkan varmistaaksemme, ettei mockeissa ole vedottu mihinkään muuhun. Se havaitsee myös vahvistamattomat kutsut, jotka esiintyvät ennen testimenetelmää, esimerkiksi setup(), @Before-metodissa tai konstruktorissa. Se on valinnainen menetelmä, eikä meidän tarvitse käyttää sitä jokaisessa testissä.

VerifyNoMoreInteractions()-metodin allekirjoitus on:

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

Mockito verifyZeroInteractions() -menetelmä

Se varmistaa, että annetuilla pilkoilla ei ole tapahtunut vuorovaikutusta. Se havaitsee myös kutsut, jotka ovat tapahtuneet ennen testimenetelmää, esimerkiksi setup(), @Before-metodissa tai konstruktorissa.

VerifyZeroInteractions()-menetelmän allekirjoitus on:

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

Mockito doThrow() -menetelmä

Sitä käytetään, kun tyhjennetään void-menetelmä poikkeuksen tekemiseksi. Se luo uuden poikkeusesiintymän jokaiselle menetelmän kutsulle. Mockito-luokassa on saatavilla kahden tyyppisiä doThrow()-menetelmiä erilaisilla parametreilla, kuten alla on esitetty:

    doThrow()-menetelmä Throwablen kanssa:Tätä menetelmää käytetään, kun haluamme typistää void-menetelmän poikkeuksella. Syntaksi: doThrow (heitettävästä heitetyksi)
    DoThrow()-menetelmän allekirjoitus on:
 public static Stubber doThrow(Throwable toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsException(toBeThrown)); } 
    doThrow()-menetelmä luokan kanssa:Tätä menetelmää käytetään, kun haluamme typistää void-metodin tietyn luokan poikkeuksen tekemiseksi.
    Syntaksi: doThrow (luokka, josta heitetään)
    doThrow()-metodin allekirjoitus on:
 public static Stubber doThrow(Class toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsExceptionClass(toBeThrown)); } 

Mockito doCallRealMethod() -menetelmä

Sitä käytetään, kun haluamme kutsua menetelmän todellista toteutusta. Toisin sanoen sitä käytetään osittaisten pilkkien luomiseen kohteesta. Sitä käytetään harvinaisissa tilanteissa, kuten kutsumaan todellisia menetelmiä. Se on samanlainen kuin spy()-menetelmä, ja ainoa ero on, että se johtaa monimutkaiseen koodiin.

DoCallRealMethod()-metodin allekirjoitus on:

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

Mockito doAnswer() -menetelmä

Sitä käytetään, kun haluamme typistää void-menetelmän yleisellä vastaustyypillä. doAnswer()-metodin allekirjoitus on:

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

Mockito doNothing() -menetelmä

Sitä käytetään void-menetelmien asettamiseen tekemättä mitään. DoNothing()-menetelmää käytetään harvoissa tilanteissa. Oletusarvoisesti valeinstanssien void-menetelmät eivät tee mitään, eli mitään tehtäviä ei suoriteta.

np.zeros

DoNothing()-metodin allekirjoitus on:

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

Mockito doReturn() -menetelmä

Sitä käytetään niissä harvoissa tapauksissa, joissa emme voi käyttää Mockito.when(object). Mockito.when(object)-menetelmää suositellaan aina stubingiksi, koska se on argumenttityyppiturvallinen ja luettavampi doReturn()-menetelmään verrattuna.

doReturn()-metodin allekirjoitus on:

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

Mockito inOrder() -metodi

Sitä käytetään luomaan objekteja, jotka mahdollistavat pilkkien tarkistamisen tietyssä järjestyksessä. Järjestyksessä tehty vahvistus on joustavampaa, koska meidän ei tarvitse vahvistaa kaikkia vuorovaikutuksia. Meidän on tarkistettava vain ne vuorovaikutukset, jotka ovat kiinnostuneita testaamisesta (järjestyksessä). Voimme myös käyttää inOrder()-metodia luodaksemme inOrder-objektin, joka välittää pilkkoja, jotka ovat merkityksellisiä in-order-vahvistuksen kannalta.

Mockito.inOrder()-metodin allekirjoitus on:

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

Mockito ignoreStubs() -metodia

Sitä käytetään jättämään huomioimatta annettujen pilkkien todentamismenetelmät. Se on hyödyllinen verifyNoMoreInteractions()- tai verification inOrder()-menetelmien kanssa. Se auttaa myös välttämään ylimääräisten stub-puheluiden todentamisen.

ignoreStubs()-metodin allekirjoitus on:

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

Mockito times() -menetelmä

Sitä käytetään menetelmän kutsujen tarkan määrän tarkistamiseen, mikä tarkoittaa, että se ilmoittaa, kuinka monta kertaa menetelmää kutsutaan. Times()-metodin allekirjoitus on:

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

Mockito never() -menetelmä

Sitä käytetään varmistamaan, että vuorovaikutusta ei tapahtunut. never()-menetelmän allekirjoitus on:

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

Mockito atLeastOnce() -menetelmä

Sitä käytetään kutsun tarkistamiseen vähintään kerran, mikä tarkoittaa, että menetelmää tulisi kutsua vähintään kerran.

AtLeastOnce()-metodin allekirjoitus on:

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

Mockito vähintään()-metodi

Sitä käytetään kutsun tarkistamiseen vähintään x kertaa. Esimerkiksi annettu vähintään(3) tarkoittaa, että menetelmä kutsuu vähintään kolme kertaa.

AtLeast()-metodin allekirjoitus on:

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

Mockito atMost() -menetelmä

Sitä käytetään kutsun tarkistamiseen enintään x kertaa. Esimerkiksi annettu atMost(3) tarkoittaa, että menetelmä kutsuu enintään kolme kertaa.

atMost()-metodin allekirjoitus on:

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

Mockito calls() -metodi

Se mahdollistaa ei-ahneen vahvistuksen järjestyksessä. Sitä voidaan käyttää vain inOrder()-vahvistusmenetelmän kanssa. Esimerkiksi inOrder.verify(mock, calls(3)).xyzMethod('...');

Calls()-metodin allekirjoitus on:

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

Mockito only() -menetelmä

Se tarkistaa, että annettu menetelmä oli ainoa käytetty menetelmä. Vain()-metodin allekirjoitus on:

numpy linspace
 public static VerificationMode only() { return VerificationModeFactory.only(); } 

Mockito timeout() -menetelmä

Sen avulla Mockito voi suorittaa tarkistuksen aikakatkaisulla. Se käskee vahvistusta odottamaan tietyn ajan tiettyä vuorovaikutusta sen sijaan, että se epäonnistuisi välittömästi. Siitä voi olla hyötyä testattaessa olemassa olevissa tilanteissa.

Timeout()-menetelmä eroaa after()-menetelmästä, koska after()-menetelmä odottaa koko jakson, ellei lopullista tulosta ilmoiteta, kun taas timeout()-menetelmä pysähtyy heti, kun vahvistus on ohi. Sitä käytetään harvoin testauksessa.

Timeout()-menetelmän allekirjoitus on:

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

Mockito after() -menetelmä

Sen avulla Mockito voi tarkistaa tietyn ajan kuluessa. Olemme jo keskustelleet siitä, että after()-menetelmä eroaa timeout()-menetelmästä.

After()-menetelmän allekirjoitus on:

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

Mockito validateMockitoUsage() -menetelmä

Sitä käytetään kehystilan nimenomaiseen validointiin Mockito-kehyksen virheellisen käytön havaitsemiseksi. Se on Mockiton valinnainen ominaisuus, koska se vahvistaa käytön koko ajan. Sekä sisäänrakennettu juoksija (MockitoJUnitRunner) että sääntö (MockitoRule) kutsuvat validateMockitoUsage() -menetelmää jokaisen testimenetelmän jälkeen.

ValiteMockitoUsage()-metodin allekirjoitus on:

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

Mockito withSettings()-menetelmällä

Sitä käytetään luomaan pilkkaa lisäasetuksilla. Sitä tulee käyttää satunnaisesti testauksessa. Sen sijaan, että käyttäisit withSettings() -menetelmää, luo yksinkertaisia ​​testejä käyttämällä yksinkertaisia ​​pilkkoja. Tärkeimmät syyt MockSettingsin käyttöön ovat

  • MockSettingin avulla voimme helposti lisätä muita valeasetuksia tarvittaessa.
  • Se yhdistää erilaisia ​​valeasetuksia sekoittamatta koodia.

withSettings()-metodin allekirjoitus on:

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