„Mockito“, `laike (n)` ir `mažiausiai (n)` yra naudojami „Patikrinkite“ metodą, kad patikrintų, kiek kartų metodas vadinamas pavyzdžio objektu. Čia pateiktas išsamus kiekvieno paaiškinimas:
Times (N)
- Tikslas: Šis metodas patikrina, ar metodas vadinamas tiksliai „n“ laikais. Jei metodas bus vadinamas daugiau ar mažiau nei „n“ laikais, testas nepavyks.- Pavyzdys: „Patikrinkite (tyčiojasi, laikai (2)). Somemethod ();` užtikrina, kad „Somemethod ()` “vadinama tiksliai du kartus.
- Naudokite atvejį: Naudokite, kai reikia užtikrinti tikslų kvietimų skaičių.
ATLEST (N)
- Tikslas: Šis metodas patikrina, ar metodas vadinamas bent „n“ laikais. Jei metodas bus vadinamas mažiau nei „n“ laikais, testas nepavyks, tačiau jis praeis, jei jis bus vadinamas daugiau nei „n“ laikais.- Pavyzdys: „Patikrinkite (tyčiojimasis, mažiausias (2)). Somemethod ();„ užtikrina, kad „Somemethod ()“ yra vadinamas bent du kartus.
- Naudokite atvejį: naudokite, kai norite užtikrinti minimalų kvietimų skaičių, tačiau nesirūpinkite maksimaliu.
Pagrindiniai skirtumai
- Tikslus ir minimalus: `Laikas (n)` reikalauja tikslaus skambučių skaičiaus, o „mažiausiai (n)“ reikia bent to skambučių skaičiaus.- Lankstumas: `mažiausiai (n)` yra lankstesnis, nes tai leidžia gauti daugiau skambučių nei nurodyti, tuo tarpu „laikai (n)“ yra griežtas skambučių skaičiaus.
- Klaidų tvarkymas: Jei metodas vadinamas daugiau kartų nei nurodytas su „Times (n)“, „Mockito“ išmes išimtį („ToomanyactualInvocations“). Naudojant `mažiausiai (n)`, jis nepavyks tik tuo atveju, jei metodas bus vadinamas mažiau kartų nei nurodytas (`TOUNTITTLEACTUALINVOCATIONS“).
Apibendrinant galima pasakyti, kad „laikai (n)“ yra naudojami tiksliai valdyti metodo skambučių skaičių, o „mažiausiai (n)“ naudojamas siekiant užtikrinti minimalų skambučių ribą, neribojant maksimalaus skambučių skaičiaus.
Citatos:[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-between-atleastonce-and-idimes1-in-Mockito
[2] https://mincong.io/2019/09/22/mockito-verify/
[3] https://github.com/mock/mockk
[4] https://site.mockito.org/javadoc/current/org/mockito/mockito.html
[5] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.atleast
[6] https://stackoverflow.com/questions/60969650/use-of-verify-method-with ir-without-imes1-parameter
[7] https://www.digitalocean.com/community/tutorials/mockito-verify
[8] https://stackoverflow.com/questions/27787487/java-verify-void-method-calls-nimes-with-mocko
[9] https://www.javacodegeeks.com/2015/11/mockito-verification.html
[10] https://stackoverflow.com/questions/54233024/how-to-overify-a-method-wich was-called-multiple-imes/54233921