Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Melyek a legjobb gyakorlatok a Mockito -ban a gúnyok visszaállításához


Melyek a legjobb gyakorlatok a Mockito -ban a gúnyok visszaállításához


A Mockito -ban a gúnyok visszaállítása egy olyan szolgáltatás, amely lehetővé teszi a álobjektumok újrafelhasználását a daganatok és az interakciók törlésével. Azonban a „reset ()” használata általában elriasztja, hacsak feltétlenül szükséges, mivel ez a rosszul strukturált teszteket jelezheti. Íme néhány bevált gyakorlat a Mockito -ban a gúnyok visszaállításához:

annak megértése, hogy mikor kell használni a `reset ()` -t

-Kerülje a `reset ()` használatát: Az elsődleges oka a `reset ()` létezik a konténer-befecskendezett gúnyok, például a régi kódban vagy a harmadik fél interfészekben használt gúnyok támogatása. A legtöbb esetben, különösen a jól megtervezett tesztvezérelt kód esetén, kerülje a „reset ()” használatát, és ehelyett a kicsi, fókuszált vizsgálati módszerek létrehozására kell összpontosítania [2] [4].

- Kódszag: Ha úgy találja, hogy a `reset ()` használata egy vizsgálati módszeren keresztül kell használni, akkor ez lehet annak a jele, hogy a tesztek túl bonyolultak, vagy túl sok forgatókönyvet fednek le. Ez azt jelezheti, hogy szükség van a tesztek vagy a tesztelt kód refaktorozására [2].

alternatívák a `reset ()` számára

- Hozzon létre új modelleket: A modellek visszaállítása helyett fontolja meg az új modellek létrehozását az egyes vizsgálati módszerekhez. Ez a megközelítés biztosítja, hogy az egyes tesztek tiszta palával kezdődjenek, csökkentve a korábbi tesztek közötti interakciók kockázatát, amely befolyásolja a jelenlegit [4].

- Használja a `clearInvocations ()` használatát: Ha csak a meghívási előzményeket kell törölnie (például az interakciók ellenőrzéséhez anélkül, hogy befolyásolná a rakást), akkor használja a `mockito.clearInvocations ()` használatát. Ez a módszer eltávolítja a meghívási előzményeket a csonkok visszaállítása nélkül, ami bizonyos forgatókönyvekben hasznos lehet [4].

A gúnyok visszaállításának legjobb gyakorlatai

- Helyezze vissza minden teszt után: Ha vissza kell állítania a modelleket, akkor ezt minden egyes vizsgálati módszer után végezze el egy `@utáni annotáció után a junit vagy a` utóteach () `alkalmazásban. Ez biztosítja, hogy az egyes tesztek tiszta álállapotokkal kezdődjenek [3] [10].

- Kerülje a tesztek előtti visszaállítást: A gúnyok visszaállítása minden teszt előtt zavart okozhat abban, hogy milyen állapotban van a modell a teszt elején. Általában világosabb az új gúnyok létrehozása vagy a tesztek után visszaállítása [10].

- Használjon keretjellemzőket: Az olyan keretekben, mint a tavasz, az olyan kommentárok használata, mint a „@mockbean”, automatikusan képes kezelni a modellek visszaállítását az egyes tesztek után, kiküszöbölve a kézi visszaállítás szükségességét [10].

Következtetés

Míg a Mockito biztosítja a „reset ()” módszert meghatározott felhasználási esetekhez, általában tanácsos elkerülni annak használatát a tisztább, koncentráltabb teszttervezés javára. Ha új modelleket hoz létre minden egyes teszthez vagy keretjellemzőkhöz a modell állapotának kezelésére, robusztus és karbantartható teszteket biztosíthat a kézi visszaállítás nélkül.

Idézetek:
[1] https://www.tutorialspoint.com/mockito/mockito_resetting_mock.htm
[2] https://site.mockito.org/javadoc/current/org/mockito/mockito.html
[3] https://twitter.github.io/finatra/user-guide/testing/mocks.html
[4] https://softwareEngineering.stackexchange.com/questions/188299/is-this-an-pliter-use-of-mockitos-reset-method
[5] https://github.com/mockito/mockito-kotlin/issues/513
[6] https://symflower.com/en/company/blog/2024/how-to-do-mocking-ppring-boot/
[7] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.reset
[8] https://github.com/mockito/mockito/issues/183
[9] https://www.toptal.com/java/a-guide-to-everyday-mockito
[10] https://stackoverflow.com/questions/18164123/how-to-clean-p-mocks-in-spring-tests-when-using-mockito