Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuinka Mockito käsittelee tarkistettuja poikkeuksia eri tavalla kuin tarkistamattomat poikkeukset


Kuinka Mockito käsittelee tarkistettuja poikkeuksia eri tavalla kuin tarkistamattomat poikkeukset


Mockito -kahvat tarkistettiin ja tarkistamattomat poikkeukset eri tavalla, pääasiassa siitä, kuinka Java kohtelee näitä poikkeuksia ja kuinka Mockito on suunniteltu toimimaan menetelmien allekirjoituksilla.

tarkistetut poikkeukset

- Määritelmä: Tarkistetut poikkeukset ovat poikkeuksia, jotka tarkistetaan käännöshetkellä. Ne on joko kiinni `kokeilukuoret '-lohkoon tai ilmoitettava menetelmän allekirjoituksessa käyttämällä" heitto "-avainsanaa [3].
- Mockiton käsittely: Mockito sallii tarkistettujen poikkeusten heittämisen pilkkiobjektista vain, jos poikkeus ilmoitetaan menetelmän allekirjoituksessa. Jos yrität heittää tarkistetun poikkeuksen, jota ei ilmoiteta, Mockito heittää "MockitoException" -viestin, joka osoittaa, että tarkistettu poikkeus on virheellinen kyseiselle menetelmään [1] [2]. Esimerkiksi, jos menetelmä `tyhjä somemethod () heittää ioexception`, voit käyttää Mockitoa heittääksesi` ioexception` ilman ongelmia.

tarkistamattomia poikkeuksia

- Määritelmä: Tarkkailemattomat poikkeukset ovat poikkeuksia, joita ei tarkisteta käännöshetkellä. Ne ovat tyypillisesti ajonaikaisia ​​poikkeuksia tai virheitä, jotka osoittavat ohjelmointivirheitä [3].
- Mockiton käsittely: Mockito pystyy helposti käsittelemään tarkistamattomia poikkeuksia ilman rajoituksia. Voit käyttää `vitahimoa ()` tai `dothrow ()` simuloida tarkistamattomia poikkeuksia, kuten `apertimeException` tai` nollpointerexception`, tarvitsematta niiden ilmoittamista menetelmän allekirjoituksessa [1] [2]. Tämän ansiosta virheiden käsittely on suoraviivaista odottamattomien olosuhteiden suhteen.

Tarkastettujen poikkeusten kiertotapa

Jos joudut heittämään tarkistetun poikkeuksen, jota ei ilmoiteta menetelmän allekirjoituksessa, voit käyttää Mockiton "Doanswer () -menetelmää. Tämän menetelmän avulla voit määritellä räätälöity käyttäytyminen pilkkamenetelmään, mukaan lukien poikkeukset, joita ei ilmoiteta menetelmän allekirjoituksessa [4]. Tämä lähestymistapa vaatii kuitenkin enemmän manuaalista käsittelyä ja on yleensä vähemmän suoraviivaista kuin `vitahrow ()` tai `dothrow ()` `.

Yhteenvetona voidaan todeta, että Mockiton tarkistettujen poikkeusten käsittely on rajoittavampaa, koska se noudattaa Javan kääntöajan tarkistuksia, kun taas tarkistamattomia poikkeuksia voidaan heittää vapaasti, mikä helpottaa niitä helpommin testeissä.

Viittaukset:
.
[2] https://www.toptal.com/java/a-guide-to-everyday-mockito
.
[4] https://stackoverflow.com/questions/3762047/throw-checked-exceptions-from-mocks
.
.
[7] https://www.janbasktraining.com/community/java/throw-checked-exceptions-from-mocks
[8] https://www.youtube.com/watch?v=6-gj2w2ycmi
[9] https://www.browerstack.com/guide/mockito-throw-exception