Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mitkä ovat Mockito -argumentin sovittajien käytön rajoitukset


Mitkä ovat Mockito -argumentin sovittajien käytön rajoitukset


Mockito -argumentin sovittajat ovat tehokkaita työkaluja, joita käytetään yksikkötestauksessa joustavasti määrittelemään argumentteja pilkkaamisten asettamisessa. Heillä on kuitenkin useita rajoituksia:

1. Käyttöyhteys: Argumentin sovittajia voidaan käyttää vain stubbing- tai todentamismenetelmien yhteydessä. Niitä ei voida käyttää, kun soitat menetelmiä testattavalle objektille. Esimerkiksi, et voi käyttää "mitään string ()", kun kutsutaan menetelmää oikeaan objektiin; Sen sijaan sinun tulisi käyttää betoniarvoa [1] [5].

2. Johdonmukaisuus argumenttien välillä: Kun käytät argumentin sovittajaa yhdelle argumentille, kaikkien muiden argumenttien on myös käytettävä sovittajia. Et voi sekoittaa ottelijoita betoniarvoihin eri argumentteihin samassa menetelmäpuhelussa. Tämä on yleinen lähde "viralliselle mittauskokouksen '[7] [8].

3. Rajoitukset: Mockito ei voi pilkata tiettyjä menetelmiä, kuten `tasa -arvoisia ()`, `hashcode ()` tai lopullisia menetelmiä. Vaikka argumentti -sovittajia voidaan käyttää menetelmillä, joita voidaan pilkata, ne eivät laajenna kykyä pilkata näitä rajoitettuja menetelmiä [3].

4. Argumentin sovittajatyypit: Mockito tarjoaa erilaisia ​​sisäänrakennettuja argumentti-sovittajia (esim. "Anyint ()`, "mikä tahansa ()", "` isNull ()), mutta sinun on valittava argumentin oikea tyyppi. Esimerkiksi "minkä tahansa ()` primitiivisen tyypin käyttäminen ei välttämättä toimi odotetusti; Käytä sen sijaan tarkempaa sovittajaa, kuten "AnyBoolean ()" boolean parametreille [7].

5. Mukautetut argumentti -sovittajat: Vaikka Mockito antaa sinun luoda räätälöityjä sovittajia käyttämällä `argthat ()` -menetelmää, "argumentMatcher" -rajapinnan toteuttaminen vaatii huolellista harkinnan varmistaakseen, että sovittaja käyttäytyy eri skenaarioissa [2] [4].

6. Integraatio muihin kirjastoihin: Kun käytät Mocitoa muiden kirjastojen kanssa, kuten Hamcrest, varmista, että integraatio käsitellään oikein. Esimerkiksi Sonarqube saattaa merkitä tietyn "argthat ()" `Hamcrest -sovittajien olevan virheellisiä, vaikka ne olisivat päteviä [4].

Yhteenvetona voidaan todeta, että vaikka Mockito -argumentti -sovittajat ovat monipuolisia, niiden käyttö on rajoitettu tiettyihin kontekstiin ja vaatii johdonmukaisuutta menetelmäargumenttien välillä. Lisäksi ne eivät voi voittaa Mockiton perustavanlaatuisia rajoituksia tietyistä menetelmistä tai luokista.

Viittaukset:
[1] https://groups.google.com/g/mockito/c/ul9ymczqnky
[2] https://kenkoousen.substack.com/p/tales-from-the-jar-side-a-mockito
[3] https://ioflood.com/blog/mockito/
.
[5] https://groups.google.com/g/mockito/c/zi6pcqudtco
.
.
[8] https://www.baeldung.com/mockito-argument-Matchers