Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvordan sammenlignes Mockitos tilbakestillingsmetode med andre hånlige biblioteker


Hvordan sammenlignes Mockitos tilbakestillingsmetode med andre hånlige biblioteker


Mockitos `Reset ()` Metode er en funksjon som lar deg tilbakestille et hånlig objekt slik at den kan brukes på nytt. Imidlertid frarådes bruken generelt av Mockito -utviklere og brukere, da det kan indikere dårlig utformede tester eller kode som er altfor kompleks og vanskelig å teste rent [7] [9]. I stedet er den anbefalte tilnærmingen å lage nye hån for hver testmetode for å sikre uavhengighet og klarhet i testing [7] [9].

Sammenligning med andre hånlige biblioteker

1. JMock2: I motsetning til Mockito, bruker JMock2 en kontekst for å håndtere forventninger og håne informasjon, som er gjenoppbygd for hver testmetode. Dette betyr at JMock2 ikke krever en eksplisitt tilbakestilling som Mockito gjør [10]. JMock2s tilnærming hjelper til med å opprettholde testisolasjon uten å måtte tilbakestille hånlig.

2. Easymock: Easymock krever heller ikke en tilbakestillingsmetode. Den er designet for å lage nye hånlige objekter for hver test, lik den anbefalte praksisen med Mockito. Szczepan Faber, en Mockito -utvikler, nevner at han aldri trengte en tilbakestillingsfunksjon mens han brukte Easymock [8].

3. Mockito vs. andre biblioteker: Generelt fremmer andre hånbiblioteker som JMock2 og Easymock en renere testtilnærming ved å enten administrere Mock State automatisk eller oppmuntre til å lage nye hån for hver test. Mockitos `Reset ()` Metode er mer et unntak snarere enn normen i hånlige rammer.

Beste praksis

- Unngå å bruke `Reset ()`: Med mindre absolutt nødvendig, for eksempel når en hån blir injisert av en beholder og ikke kan gjenskapes for hver test, anbefales det å unngå å bruke `tilbakestilling ()`. Fokuser i stedet på å lage enkle, fokuserte tester med nye hån for hvert scenario [7] [9].

- Bruk `ClearInvocations ()`: Hvis du trenger å fjerne interaksjoner uten å tilbakestille stubbing, bruk `ClearInvocations ()`. Denne metoden lar deg bevare stubbing mens du rydder registrerte interaksjoner, noe som kan være nyttig i visse scenarier [5].

- Refaktorkode for testbarhet: Hvis du finner ut at du trenger å bruke `tilbakestilling ()` ofte, kan det indikere at koden din kan dra nytte av refactoring for å gjøre den mer testbar. Dette kan innebære å bryte ned komplekse metoder eller forbedre avhengighetsinjeksjon [9].

Oppsummert, mens Mockito gir en `tilbakestilling () metode, blir bruken generelt motløs til fordel for å lage nye hån for hver test. Andre hånlige biblioteker fremmer ofte lignende praksis, og legger vekt på rene og uavhengige tester over kompleks hånforvaltning.

Sitasjoner:
[1] https://www.tutorialspoint.com/mockito/mockito_resetting_mock.htm
[2] https://groups.google.com/g/mockito/c/y_ihdc8lx_m
[3] https://www.vogella.com/tutorials/mockito/article.html
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.reset
[5] https://www.toptal.com/java/a-guide-to-veryday-mockito
[6] https://www.jrebel.com/blog/mock-unit-testing-with-mockito
[7] https://stackoverflow.com/questions/34412106/appropriate-use-of-mockito-resst
[8] https://groups.google.com/g/mockito/c/_vxg33tlzl8
[9] https://softwareEngineering.stackexchange.com/questions/188299/is-this-an-apropriate-use-of-mockitos-resst-metod
[10] https://stackoverflow.com/questions/18164123/how-to-clean-p-cock-in-spring-tests-when-sing-mockito