In mockito, `tempi (n)` e `almeno (n)` sono usati all'interno del metodo `verifica 'per verificare quante volte un metodo viene chiamato su un oggetto finto. Ecco una spiegazione dettagliata di ciascuno:
tempi (n)
- Scopo: questo metodo verifica che un metodo sia chiamato esattamente `n` volte. Se il metodo viene chiamato più o meno di `n` volte, il test fallirà.- Esempio: `Verifica (finto, tempi (2)). SomeMethod ();` assicura che `` someeMethod () `sia chiamato esattamente due volte.
- Caso di utilizzo: utilizzare quando è necessario garantire un numero preciso di invocazioni.
Atleast (N)
- Scopo: questo metodo verifica che un metodo sia chiamato almeno `n` volte. Se il metodo viene chiamato meno di `n` volte, il test fallirà, ma passerà se viene chiamato più di` n` volte.- Esempio: `Verifica (finto, atleast (2)). SomeMethod ();` garantisce che `` SomeMethod () `sia chiamato almeno due volte.
- Caso di utilizzo: utilizzare quando si desidera garantire un numero minimo di invocazioni ma non ti interessa il massimo.
differenze chiave
- esatto vs. minimo: `tempi (n)` richiede un numero esatto di chiamate, mentre `almeno (n)` richiede almeno quel numero di chiamate.- Flessibilità: `Atleast (N)` è più flessibile in quanto consente più chiamate di quanto specificato, mentre `Times (N)` è severo riguardo al numero di chiamate.
- Gestione degli errori: se un metodo viene chiamato più volte di quanto specificato con `tempi (n)`, mockito lancerà un'eccezione (`toomanyactualinvocations`). Con `Atleast (N)`, fallirà solo se il metodo viene chiamato meno volte rispetto a quello specificato (`ToollittleactualInvocations`).
In sintesi, `tempi (n)` viene utilizzato per un controllo preciso sul numero di chiamate di metodo, mentre `almeno (n)` viene utilizzato per garantire una soglia minima di chiamate senza limitare il numero massimo di chiamate.
Citazioni:[1] https://stackoverflow.com/questions/58176580/what-is-the-diffferen-between-atleastonce-and-times1-in-mockito
[2] https://ming.io/2019/09/22/mockito-verify/
[3] https://github.com/mockk/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-and-without-times1-parametro
[7] https://www.digitalocean.com/community/tutorials/mockito-verify
[8] https://stackoverflow.com/questions/27787487/java-verify-void-method-calls-times-with-mockito
[9] https://www.javacodegeeks.com/2015/11/mockito-verification.html
[10] https://stackoverflow.com/questions/54233024/how-to-verify-a-method-which-was-calped-multiple-mimes/54233921