Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kokia yra geriausia praktika iš naujo nustatyti „Mockito“ iš naujo


Kokia yra geriausia praktika iš naujo nustatyti „Mockito“ iš naujo


Iš naujo nustatyti „Mockito“ pavyzdžius yra funkcija, leidžianti pakartotinai naudoti pavyzdžių objektus, išvalydami jų kankinančius ir sąveiką. Tačiau naudojant „Reset ()` “paprastai nesuteikiama, nebent tai būtų būtina, nes tai gali reikšti blogai struktūrizuotus testus. Čia yra keletas geriausių praktikų, kaip iš naujo nustatyti „Mockito“ iš naujo:

supratimas, kada naudoti „Reset ()“

-Venkite naudoti „Reset ()“: Pagrindinė priežastis `Reset ()` egzistuoja, kad palaikytų konteinerių sušvirkštus tyčiojimus, tokius, kaip naudojami palikimo kode ar trečiųjų šalių sąsajose. Daugeliu atvejų, ypač naudodamiesi gerai suplanuotu testų pagrindu, turėtumėte vengti naudoti `reset ()` ir vietoj to sutelkti dėmesį į mažų, sufokusuotų bandymo metodų kūrimą [2] [4].

- Kodo kvapas: Jei jums reikia naudoti „Reset ()“ pagal bandymo metodą, tai gali būti ženklas, kad jūsų testai yra per daug sudėtingi arba aprėpti per daug scenarijų. Tai gali reikšti poreikį reaguoti į jūsų testus ar patikrintą kodą [2].

alternatyvos „Reset ()“

- Sukurkite naujus pavyzdžius: užuot iš naujo nustatę pavyzdžius, apsvarstykite galimybę sukurti naujus pavyzdžius kiekvienam bandymo metodui. Šis metodas užtikrina, kad kiekvienas testas prasidėtų nuo švaraus šiferio, sumažinant ankstesnių bandymų sąveikos riziką, turinčią įtakos dabartiniam [4].

- Naudokite `clearInvocations ()`: Jei jums reikia išvalyti kvietimo istoriją (pvz., Norint patikrinti sąveiką, nepaveikdami kankinimo), naudokite „Mockito.clearinvocations ()“. Šis metodas pašalina iškvietimų istoriją neatstatydamas atkūrimo, kuris gali būti naudingas tam tikruose scenarijuose [4].

geriausia praktika iš naujo nustatyti pavyzdžius

- Iš naujo nustatykite po kiekvieno testo: Jei turite iš naujo nustatyti tyčiojimus, atlikite tai po kiekvieno bandymo metodo, naudodami „@After“ anotaciją „Junit“ arba „’ Offleach () “()„ Scalatest “. Tai užtikrina, kad kiekvienas testas prasidėtų nuo švarios modelio būsenos [3] [10].

- Venkite iš naujo nustatyti prieš testus: Makų nustatymas iš naujo prieš kiekvieną testą gali sukelti painiavą dėl to, kokia būsena yra bandymo pradžioje. Paprastai aiškiau kurti naujus pavyzdžius arba iš naujo nustatyti po testų [10].

- Naudokite „Framework“ funkcijas: tokiuose rėmuose kaip pavasaris, naudojant tokius anotacijas kaip „@Mockbean“, po kiekvieno bandymo galima automatiškai valdyti modifikavimo iš naujo nustatymą, pašalindami rankinio atstatymo poreikį [10].

Išvada

Nors „Mockito“ pateikia „reset ()“ metodą konkrečiems naudojimo atvejams, paprastai patartina išvengti jo naudojimo valymo, labiau orientuoto bandymo dizaino naudai. Kurdami naujus pavyzdžius kiekvienam bandymui arba naudodami „Framework“ funkcijas, kad būtų galima valdyti „Mock“ būseną, galite užtikrinti tvirtus ir prižiūrimus testus, nereikalaujant rankinio atstatymo.

Citatos:
[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-qui-qui-use-use-of-focitos-reset-method
[5] https://github.com/mockito/mockito-kotlin/issues/513
[6] https://symflower.com/en/company/blog/2024/how-to-do-mocking-spring-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-uf --mocks-in-spring-tests-when-sing-mockoto