Mockito pakub kahte meetodit, mida saab kasutada testimise ajal mõnitavate olekute haldamiseks: `lähtestamine ()` ja `clearInvocatsions ()`. Kuigi mõlemat meetodit kasutatakse mõnitamise oleku haldamiseks, teenivad need erinevaid eesmärke ja neil on mõningatele selge mõju.
Mockito `lähtestamine ()` meetod
Mockito meetodit `lähtestamist ()` kasutatakse täielikuks lähtestamiseks. See tähendab, et see ei kustuta mitte ainult kutsumisloendeid, vaid eemaldab ka kõik pilkadele seatud tükid. See võib olla problemaatiline, kuna see nõuab pärast selle lähtestamist pilka uuesti kinnitamist, kui soovite säilitada oma testide konkreetset käitumist. `Lähtestamise ()` kasutamine on üldiselt heidutatud, kuna see võib viia keerukate ja vähem fokuseeritud testideni. See on soovitatav vältida lähtestamise () `kasutamist, kui see pole tingimata vajalik, kuna see võib teie testide kavatsust varjata ja raskendada neid [1] [5] [7].
Mockito `ClearInVocations ()` meetod
Mockito 2.1 kasutusele võetud meetod `ClearInVocations ()` võimaldab teil mõnituse kutsumise loendused kustutada, lähtestamata selle tükeldamist. See tähendab, et saate jätkata samade kärude kasutamist, tagades samal ajal, et iga test algab puhta klaasiga, mis puudutab meetodi kutsumusi. See meetod on kasulik, kui peate vastas stsenaariumi korral interaktsioone kontrollima või sõltuvuse süstimisraamistike kasutamisel, kuid seda tuleks siiski kasutada säästlikult. Üldiselt on soovitatav vältida `ClearInVocations ()` kasutamist, kui see on vajalik, kuna see võib testid keeruliseks muuta, kui seda ei kasutata läbimõeldult [1] [4] [9].
Peamised erinevused
- Kihutamine: `RESET ()` eemaldab kõik tükid, nõudes, et te mõnitatakse uuesti, samal ajal kui `ClearInvocatsions ()` lehed puutumata.
- Kutsumise arv: mõlemad meetodid selged kutsumised loevad, kuid `lähtestamine ()` teeb seda täieliku lähtestamise osana, samal ajal kui `clearInvocatsions ()` on konkreetselt suunatud kutsumiskuludele.
- Testi keerukus: Mõlemad meetodid võivad viia keerukamate testideni, kui neid ei kasutata hoolikalt, kuid "lähtestamine ()" kipub tekitama rohkem probleeme, kuna pilkamine on vaja.
Kokkuvõtlikult võib öelda, et kuigi mõlemat meetodit saab kasutada mõnitamise oleku haldamiseks, on `lähtestamine ()` invasiivsem ja üldiselt heidutatud, samas kui `clearInvocations ()` on sihikindlam, kuid seda tuleks siiski mõistlikult kasutada puhaste ja fokuseeritud testide säilitamiseks.
Tsitaadid:]
]
]
]
]
[6] https://reflectoring.io/clean-unit-tests-with-mockito/
]
[8] https://javadoc.io/doc/org.mockito/mockito-core/2.25.1/org/mockito/mockito.html
[9] https://wesome.org/mockito-3-coractions
[10] https://github.com/mock/mock/dicussions/842