Kun käytät Mockito -argumentti -sovittajia laajasti, mielessä on useita suorituskykyä koskevia näkökohtia. Vaikka Mockito on yleensä tehokas, argumentin sovittajien laaja käyttö voi tuoda jonkin verran yleiskustannuksia, koska Mockito prosessoi näitä sovittajia.
1. Matcher Processing Averfead **
- Argumentin sovittajan arviointi: Kun käytät argumentti -sovittajia, kuten `eq ()`, "minkä tahansa ()" tai "mikä tahansa", ",", Mockiton on arvioitava nämä sovittajat suorituksen aikana. Tämä arviointiprosessi voi ottaa käyttöön pienen yleiskustannuksen verrattuna tarkkoihin arvoihin suoraan. Tämä yleiskustannus on kuitenkin tyypillisesti vähäinen, ellet ole tekemisissä erittäin suuren määrän kutsuja tai monimutkaisia sovittajia.2. Matcher -yhdistelmäsäännöt **
- Kaikissa argumenteissa on käytettävä sovittajia: Jos käytät argumentin sovittajaa yhdelle argumentille, kaikkien argumenttien on käytettävä sovittajia. Tämä sääntö voi johtaa verbose -koodiin ja mahdollisesti enemmän yleiskustannuksia, jos käytät kaikkien argumenttien sovittajia, kun vain yksi tarvitsee tiettyä ehtoa. Esimerkiksi, jos menetelmällä on kolme parametria ja haluat käyttää "minkä tahansa ()" "yhdelle niistä, sinun on käytettävä myös kahdessa muussa sovittajalta, vaikka olisit voinut käyttää tarkkoja arvoja.3. Mukautetut sovittajat **
- Monimutkainen logiikka: Vaikka Mockito tarjoaa laajan valikoiman sisäänrakennettuja sovittajia, saatat joutua luomaan räätälöityjä vastaajia tiettyyn logiikkaan. Mukautetut sovittajat voivat olla laskennallisesti kalliimpia, jos niihin liittyy monimutkainen logiikka tai toiminnot. Tämä johtuu siitä, että ne vaativat "argumentMatcher" -rajapinnan toteuttamisen ja `ottelut ()` -menetelmän määrittelemistä, joka voi suorittaa mielivaltaiset tarkastukset.4. Vahvistuskustannus **
- Vahvistaminen sovittajien kanssa: Kun varmistetaan vuorovaikutukset pilkkaobjektien kanssa käyttämällä `Vardify ()`, Mockito käyttää myös sovittajia tarkistamaan, ovatko oikeat argumentit välitetty. Samanlainen kuin pinta -ala, varmennus sovittajien kanssa voi tuoda esiin jonkin verran yleiskustannuksia, varsinkin jos tarkistat useita puheluita monimutkaisten sovittajien kanssa.5. parhaat suorituskyvyn käytännöt **
- Käytä spesifisyyttä viisaasti: Käytä sovittajia oikealla spesifisyydellä. Esimerkiksi `mikä tahansa ()` on vähemmän tarkka ja nopeampi kuin `ekvivalentti (4)`, mutta "Eq (4)` `` Kun sinun on tarkistettava tietty arvo on tarkempi eikä vaikuta merkittävästi suorituskykyyn.- Vältä tarpeetonta monimutkaisuutta: Vältä räätälöityjen sovittajien käyttöä, ellei välttämätöntä. Jos testi vaatii monimutkaisen logiikan vastaamaan argumentteja, harkitse testin yksinkertaistamista tai olemassa olevien sovittajien käyttämistä luovasti.
- Profiilit testit: Jos huomaat suorituskykyongelmia testeissäsi, profiilit ne pullonkaulojen tunnistamiseksi. On harvinaista, että Mockito -sovittajat ovat ensisijainen syy merkittäviin suorituskykyongelmiin, mutta on aina hyvä tarkistaa.
Yhteenvetona voidaan todeta, että vaikka Mockito-argumentin sovittajat esittelevät jonkin verran yleiskustannuksia, tämä ei yleensä ole merkittävä huolenaihe, ellet ole tekemisissä erittäin monimutkaisten tai suorituskriittisten testien kanssa. Ottelijoiden käytön edut, kuten joustavuus ja selkeys tesikoodissa, ylittävät yleensä pienet suorituskykykustannukset.
Viittaukset:.
[2] https://www.digitalocean.com/community/tutorials/mockito-argument-matchers-any-eq
[3] https://kenkoousen.substack.com/p/tales-from-the-jar-side-a-mockito
[4] https://www.softwaretesthelp.com/mockito-matchers/
[5] https://www.toptal.com/java/a-guide-to-everyday-mockito
[6] https://github.com/etorreborre/specs2/issues/854
.
.