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