„Mockito“ metodas „Reset ()“ yra funkcija, leidžianti iš naujo nustatyti modelio objektą, kad jį būtų galima pakartotinai naudoti. Tačiau jo naudojimą paprastai atgraso „Mockito“ kūrėjai ir vartotojai, nes tai gali reikšti blogai suprojektuotus testus ar kodą, kuris yra per daug sudėtingas ir sunkiai išbandomas švariai [7] [9]. Vietoj to, rekomenduojamas būdas yra sukurti naujus pavyzdžius kiekvienam bandymo metodui, kad būtų užtikrintas savarankiškumas ir aiškumas atliekant bandymus [7] [9].
palyginimas su kitomis tyčiojamės bibliotekomis
1. JMOCK2: Skirtingai nuo „Mockito“, „JMock2“ naudoja kontekstą lūkesčių ir sąnaudų informacijos valdymui, kuris yra atstatytas kiekvienam bandymo metodui. Tai reiškia, kad JMOCK2 nereikia aiškaus iš naujo, kaip tai daro „Mockito“ [10]. „JMock2“ požiūris padeda išlaikyti bandymo izoliaciją, nereikia rankiniu būdu nustatyti iš naujo.
2. „Easymock“: „Easymock“ taip pat paprastai nereikalauja iš naujo nustatymo metodo. Jis skirtas sukurti naujus kiekvieno bandymo objektus, panašius į rekomenduojamą praktiką naudojant „Mockito“. „Mockito“ kūrėjas „Szczepan Faber“ mini, kad jam niekada nereikia atstatyti funkcijos, kai naudojamas „Easymock“ [8].
3. „Mockito“ ir kitos bibliotekos: Apskritai kitos tyčiojimosi bibliotekos, tokios kaip JMOCK2 ir „Easymock“, skatina švaresnį testavimo metodą, automatiškai valdant „Mock“ būseną arba skatinant kurti naujus pavyzdžius kiekvienam testui. „Mockito“ „Reset ()“ metodas yra daugiau išimtis, o ne norma tyčiojimosi sistemose.
geriausia praktika
- Venkite naudoti `reset ()`: nebent to būtini, pavyzdžiui, kai švirkščiamas konteineris įšvirkščiamas ir negali būti atkurtas kiekvienam bandymui, patartina vengti naudoti „Reset ()“. Vietoj to, sutelkite dėmesį į paprastų, sutelktų testų su naujais pavyzdžiais kūrimą kiekvienam scenarijui [7] [9].
- Naudokite `clearInvocations ()`: Jei jums reikia išvalyti sąveiką neatsirandant atkaklumo, naudokite `clearInvocations ()`. Šis metodas leidžia išsaugoti kibirkštį išvalant bet kokias užfiksuotas sąveikas, kurios gali būti naudingos tam tikrais scenarijais [5].
- Refaktoriaus kodas, skirtas bandymui: jei jums reikia naudoti „Reset ()“ dažnai, tai gali reikšti, kad jūsų kodas gali būti naudingas, kad būtų galima reaguoti, kad jis būtų labiau išbandytas. Tai gali apimti sudėtingų metodų suskaidymą ar priklausomybės injekcijos gerinimą [9].
Apibendrinant galima pasakyti, kad nors „Mockito“ pateikia „reset ()“ metodą, jo naudojimas paprastai yra atgrasomas už naujų pavyzdžių kūrimą kiekvienam testui. Kitos tyčiojamės bibliotekos dažnai skatina panašią praktiką, pabrėžiant švarius ir nepriklausomus testus, susijusius su sudėtingu modelių valdymu.
Citatos:[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-everyday-mockito
[6] https://www.jrebel.com/blog/mock-unit-testing-with-mockito
[7] https://stackoverflow.com/questions/34412106/ingelic-use- ous-of-mockito-reset
[8] https://groups.google.com/g/mockito/c/_vxg33tlzl8
[9] https://softwareEngineering.stackexchange.com/questions/188299/is-this-an-qui-qui-use-use-of-focitos-reset-method
[10] https://stackoverflow.com/questions/18164123/how-to-clean-uf --mocks-in-spring-tests-when-sing-mockoto