Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Aké sú osvedčené postupy na resetovanie falošných v Mockito


Aké sú osvedčené postupy na resetovanie falošných v Mockito


Resetovanie falošiek v Mockito je funkcia, ktorá vám umožňuje opätovné použitie falošných objektov vyčistením ich strubovania a interakcií. Používanie `reset ()` sa však vo všeobecnosti odrádza, pokiaľ to nie je absolútne nevyhnutné, pretože môže naznačovať zle štruktúrované testy. Tu je niekoľko osvedčených postupov na resetovanie falošných v Mockito:

Pochopenie, kedy použiť `reset ()`

-Vyhnite sa používaniu `reset ()`: Primárnym dôvodom `reset ()` existuje na podporu zosilnení injektovaných kontajnerom, ako sú napríklad tie, ktoré sa používajú v starších kódoch alebo rozhrania tretích strán. Vo väčšine prípadov, najmä s dobre navrhnutým kódom riadeným testom, by ste sa mali vyhnúť použitiu `reset ()` a namiesto toho sa zamerať na vytváranie malých, zameraných testovacích metód [2] [4].

- Zápach kódu: Ak zistíte, že potrebujete používať `reset ()` v rámci skúšobnej metódy, môže to byť znakom toho, že vaše testy sú príliš zložité alebo pokrývajú príliš veľa scenárov. To by mohlo naznačovať potrebu refaktorovať vaše testy alebo testovaný kód [2].

alternatívy k `reset ()`

- Vytvorte nové falošky: Namiesto resetovania falošných programov zvážte vytvorenie nových falošných inštancií pre každú metódu testovania. Tento prístup zaisťuje, že každý test začína čistým bridlicom, čím sa znižuje riziko interakcií z predchádzajúcich testov ovplyvňujúcich súčasný test [4].

- Použite `clearInvocations ()`: Ak potrebujete vyčistiť históriu vyvolania (napr. Na overenie interakcií bez ovplyvnenia stráženia), použite „Mockito.ClearInvocations ()`. Táto metóda odstraňuje históriu vyvolania bez resetovania pinov, ktoré môžu byť užitočné v určitých scenároch [4].

osvedčené postupy na resetovanie falošných

- Reset po každom teste: Ak musíte resetovať zosmiešňovanie, urobte tak po každej testovacej metóde pomocou `@po„ anotácii v junit alebo `aftereach ()` v Scalatest. To zaisťuje, že každý test začína čistým falošným stavom [3] [10].

- Vyhnite sa resetovaniu pred testmi: Resetovanie falošných predpisov pred každým testom môže viesť k zámene o tom, v akom stave je falošný na začiatku testu. Všeobecne je jasnejšie vytvárať nové falošné sily alebo resetovať po testoch [10].

- Používajte rámcové funkcie: V rámci, ako je jar, používanie anotácií ako `@MockBean` po každom teste automaticky zvládnuť simulované resetovanie, čím sa eliminuje potreba manuálnych resetov [10].

Záver

Zatiaľ čo Mockito poskytuje metódu `reset ()" pre konkrétne prípady použitia, vo všeobecnosti je vhodné vyhnúť sa jeho použitiu v prospech čistejšieho a zameraného konštrukcie testov. Vytvorením nových zosmiešňovaní pre každý test alebo pomocou rámcových funkcií na správu Mock State môžete zabezpečiť robustné a udržiavateľné testy bez potreby manuálnych resetov.

Citácie:
[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-appppr Aflers-useof-useof-mockitos-reset-methody
[5] https://github.com/mockito/Mockito-kotlin/issues/513
[6] https://symflower.com/en/company/blog/2024/how-to-d-do-mocking-pring-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-veryday-mockito
[10] https://stackoverflow.com/questions/18164123/how-to-clean-ping-mocks-in-pring-tests-wen-using-using-mockito