Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Er det noen vanlige fallgruver når du håner unntak med mockito


Er det noen vanlige fallgruver når du håner unntak med mockito


Når du bruker Mockito for å spotte unntak, kan flere vanlige fallgruver gjøre testene dine mindre effektive eller vanskeligere å vedlikeholde. Her er noen av disse fallgruvene og hvordan du kan unngå dem:

1. Over-spå **

En av de mest betydningsfulle fallgruvene er over-spottende. Dette skjer når du håner for mange avhengigheter, noe som fører til tester som er skjøre og vanskelige å opprettholde. Over-spotring kan føre til at tester fokusere mer på hånten enn på den faktiske oppførselen til systemet som er under test. For å unngå dette, fokuserer du på å spotte bare samarbeidspartnerne som har ikke-triviell atferd eller de hvis interaksjoner du vil bekrefte. Bruk virkelige forekomster for enkle samarbeid [3].

2. Ugyldige unntak **

Mockito sikrer at unntaket som kastes er gyldig for den spesifikke stubbede metoden. Hvis du prøver å kaste et unntak som ikke er i metodens sjekket unntaksliste, vil Mockito klage. For eksempel, hvis en metode ikke erklærer `ioException`, vil det å prøve å hån mot å kaste en` ioException` resultere i en feil [1]. Forsikre deg alltid om at det hånet unntaket er gyldig for metoden.

3. Bruke `thenthrow ()` med tomrommetoder **

`Når (). Thenthrow ()` kan ikke brukes med tomrommetoder fordi det ikke er noen returverdi å spotte. Bruk i stedet `dothrow ()` for tomrommetoder. Å blande disse metodene kan feil føre til feil [2].

4. Mangel på spesifisitet **

Når du håner unntak, er det avgjørende å være spesifikk om hvilke unntak du tester. Unngå over-spåling ved å fokusere på unntak som er relevante for testscenariet. Dette hjelper til med å holde testene fokuserte og vedlikeholdbare [2] [8].

5. Feil håndtering av henrettelser **

Forsikre deg om at applikasjonskoden er utarbeidet for å håndtere unntak riktig, selv når den blir hånet under testene. Dette inkluderer testing av logikken for håndtering av unntak for å sikre at den oppfører seg som forventet [2].

6. Bruk av meningsfulle feilmeldinger **

Når du håner unntak, må du ta med meningsfulle meldinger som hjelper deg med å diagnostisere problemer hvis tester mislykkes. Denne praksisen forbedrer klarheten og effektiviteten til testene dine [2].

7. Testing av unntakshåndteringslogikk **

Forsikre deg om at koden håndterer unntak som forventet. Dette innebærer å bekrefte at applikasjonen oppfører seg riktig når unntak kastes, noe som er avgjørende for å bygge spenstige applikasjoner [2].

8. Tilbakestilling og rydding av spott **

Mockito gir funksjoner som `reset ()` og `clearinvocations ()` for å håndtere hån. Disse bør imidlertid brukes sparsomt. Tilbakestilling av en hån skal bare gjøres i sjeldne tilfeller, for eksempel når en hån blir injisert av en beholder og ikke kan gjenskapes for hver test. Å tømme påkallinger kan være nyttig hvis det å gjenskape en hån vil føre til betydelig overhead [1].

Ved å være klar over disse fallgruvene og følge beste praksis, kan du effektivt bruke Mockito for å spotte unntak og sikre at testene dine er robuste og vedlikeholdbare.

Sitasjoner:
[1] https://www.toptal.com/java/a-guide-to-veryday-mockito
[2] https://www.browsstack.com/guide/mockito-throw-exception
[3] https://javanexus.com/blog/avoiding-mockito-testing-pitfalls
[4] https://stackoverflow.com/questions/9186604/mockito-exception-when-requires-an-argument-which-has-to-be-a-metod-call-on
[5] https://stackoverflow.com/questions/22540108/best-practices-with-mockito
[6] https://stackoverflow.com/questions/52512548/mock-method-to-do-not-tap-an-exception/52514628
[7] https://contributors.scala-anga.org/t/mockito-testing-nulls-and-xceptions/3915
[8] https://www.janbaskTraining.com/community/java/throw-checked-exceptions-from-march-with-mockito