Kun käytät Mockitoa poikkeusten pilkkaamiseen, useat yleiset sudenkuopat voivat tehdä testeistäsi vähemmän tehokkaita tai vaikeampia ylläpitää. Tässä on joitain näistä sudenkuoppia ja kuinka välttää niitä:
1. Yli-Mocking **
Yksi merkittävimmistä sudenkuoppista on ylenmäärä. Tämä tapahtuu, kun pilkkaat liian monta riippuvuutta, mikä johtaa testeihin, jotka ovat hauraita ja vaikeasti ylläpitäviä. Ylimäkijä voi aiheuttaa testien keskittymisen enemmän pilkkauksiin kuin testatun järjestelmän todelliseen käyttäytymiseen. Tämän välttämiseksi keskity vain pilkkaamaan vain yhteistyökumppaneita, joilla on ei-triviaalista käyttäytymistä, tai niitä, joiden vuorovaikutukset haluat tarkistaa. Käytä todellisia tapauksia yksinkertaiseen yhteistyöhön [3].2. Virhaiset poikkeukset **
Mockito varmistaa, että heitettävä poikkeus on pätevä erityiselle tynnyrille. Jos yrität heittää poikkeuksen, jota ei ole menetelmän tarkistettuun poikkeusluetteloon, Mockito valittaa. Esimerkiksi, jos menetelmä ei julista `ioexception`, yrittää pilkata sitä heittääkseen" ioexception "-virheen [1]. Varmista aina, että pilkattu poikkeus on pätevä menetelmään.3.
`Kun (). Viikko ()` `ei voida käyttää tyhjillä menetelmillä, koska pilkkaa ei ole palautusarvoa. Käytä sen sijaan `dothrow ()` tyhjiin menetelmiin. Näiden menetelmien sekoittaminen väärin voi johtaa virheisiin [2].4. Erityisyyden puute **
Poikkeuksia pilkkaaessa on tärkeää olla tarkka, mitä poikkeuksia testaat. Vältä ylikuormitusta keskittymällä testiskenaarion kannalta merkityksellisiin poikkeuksiin. Tämä auttaa pitämään testit keskittyneinä ja ylläpidettävinä [2] [8].5. Suoritusten väärä käsittely **
Varmista, että sovelluskoodi on valmis käsittelemään poikkeuksia oikein, jopa pilkattaessa testien aikana. Tämä sisältää logiikan testaamisen poikkeusten käsittelemiseksi sen varmistamiseksi, että se käyttäytyy odotetusti [2].6. Merkityksellisten virheilmoitusten käyttö **
Sisällytä poikkeuksia pilkkaamalla merkityksellisiä viestejä ongelmien diagnosoimiseksi, jos testit epäonnistuvat. Tämä käytäntö lisää testien selkeyttä ja tehokkuutta [2].7. Poikkeusten käsittely logiikan ** testaaminen
Varmista, että koodi käsittelee poikkeuksia odotetusti. Tähän sisältyy varmistaminen, että sovellus käyttäytyy oikein, kun poikkeuksia heitetään, mikä on välttämätöntä joustavien sovellusten rakentamiselle [2].8. Pilkkaten palauttaminen ja puhdistaminen **
Mockito tarjoaa ominaisuuksia, kuten `Reset ()` ja `clearInvocations ()` pilkkaamisten hallitsemiseksi. Niitä tulisi kuitenkin käyttää säästeliäästi. Pilkan palauttaminen tulisi tehdä vain harvinaisissa tapauksissa, kuten silloin, kun säiliö ruiskuttaa pilkkaa eikä sitä voida luoda uudelleen jokaiselle testille. Kutsujen puhdistaminen voi olla hyödyllistä, jos pilkan luominen johtaisi merkittävään yleiskustannukseen [1].Kun olet tietoinen näistä sudenkuopaista ja noudattaen parhaita käytäntöjä, voit käyttää Mockitoa tehokkaasti poikkeusten pilkkaamiseen ja varmistaaksesi, että testit ovat vankkoja ja ylläpidettäviä.
Viittaukset:[1] https://www.toptal.com/java/a-guide-to-everyday-mockito
[2] https://www.browerstack.com/guide/mockito-throw-exception
.
.
[5] https://stackoverflow.com/questions/22540108/best-practices-with-mockito
.
.
[8] https://www.janbasktraining.com/community/java/throw-checked-exceptions-from-mocks