Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvordan sammenlignes Mockitos nulstillingsmetode med andre spottende biblioteker


Hvordan sammenlignes Mockitos nulstillingsmetode med andre spottende biblioteker


Mockitos `Nulstil ()` metode er en funktion, der giver dig mulighed for at nulstille et mock -objekt, så det kan genbruges. Imidlertid afskrækkes dens anvendelse generelt af Mockito -udviklere og brugere, da det kan indikere dårligt designede test eller kode, der er for kompliceret og vanskelig at teste rent [7] [9]. I stedet er den anbefalede tilgang at skabe nye spot for hver testmetode for at sikre uafhængighed og klarhed i testen [7] [9].

Sammenligning med andre spottende biblioteker

1. JMOCK2: I modsætning til Mockito bruger JMOCK2 en kontekst til at styre forventningerne og mock information, som genopbygges for hver testmetode. Dette betyder, at JMock2 ikke kræver en eksplicit nulstilling, som Mockito gør [10]. JMOCK2s tilgang hjælper med at opretholde testisolering uden at skulle manuelt nulstille mocks.

2. EASYMOCK: EASYMOCK kræver heller ikke typisk en nulstillingsmetode. Det er designet til at oprette nye mock -objekter til hver test, der ligner den anbefalede praksis med Mockito. Szczepan Faber, en Mockito -udvikler, nævner, at han aldrig havde brug for en nulstillingsfunktion, mens han brugte EasyMock [8].

3. Mockito vs. Andre biblioteker: Generelt fremmer andre hånende biblioteker som JMock2 og EasyMock en renere testmetode ved enten automatisk at styre Mock State eller tilskynde til oprettelse af nye mocks for hver test. Mockitos 'nulstilling ()' -metode er mere en undtagelse snarere end normen i hånende rammer.

Bedste praksis

- Undgå at bruge `nulstilling ()`: Medmindre det er absolut nødvendigt, f.eks. Når en spot injiceres af en container og ikke kan genskabes for hver test, tilrådes det at undgå at bruge `nulstilling ()`. Fokuser i stedet på at skabe enkle, fokuserede tests med nye spot for hvert scenarie [7] [9].

- Brug `clearInvocations ()`: Hvis du har brug for at rydde interaktioner uden at nulstille stubbing, skal du bruge `clearInvocations ()`. Denne metode giver dig mulighed for at bevare stubbing, mens du rydder eventuelle registrerede interaktioner, som kan være nyttige i visse scenarier [5].

- Refactor -kode for testbarhed: Hvis du finder dig selv, at du har brug for at bruge `nulstilling ()` Ofte, kan det indikere, at din kode kan drage fordel af refactoring for at gøre den mere testbar. Dette kan involvere nedbrydning af komplekse metoder eller forbedring af afhængighedsinjektion [9].

Sammenfattende, mens Mockito giver en `nulstilling ()` metode, afskrækkes dens anvendelse generelt til fordel for at oprette nye spot for hver test. Andre hånlige biblioteker fremmer ofte lignende praksis, der understreger rene og uafhængige tests over kompleks spotstyring.

Citater:
[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-test-advisor/selenium/metods/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/ApPrIate-use-of-mockito-reset
[8] https://groups.google.com/g/mockito/c/_vxg33tlzl8
[9] https://softwareengineering.stackexchange.com/Questions/188299/is-this-an-topriate-use-of-mockitos-reset-method
[10] https://stackoverflow.com/questions/18164123/how-to-clean-up-mocks--in-spring-tests-when-using-mockito