Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ποια είναι η διαφορά μεταξύ των χρόνων (n) και atleast (n) στη μέθοδο επαλήθευσης του Mockito


Ποια είναι η διαφορά μεταξύ των χρόνων (n) και atleast (n) στη μέθοδο επαλήθευσης του Mockito


Στο Mockito, `Times (n)` και `atleast (n)` χρησιμοποιούνται μέσα στη μέθοδο `επαληθεύστε 'για να ελέγξετε πόσες φορές μια μέθοδος καλείται σε ένα ψεύτικο αντικείμενο. Ακολουθεί μια λεπτομερής εξήγηση για το καθένα:

φορές (n)

- Σκοπός: Αυτή η μέθοδος επαληθεύει ότι μια μέθοδος ονομάζεται ακριβώς `n` φορές. Εάν η μέθοδος ονομάζεται περισσότερο ή μικρότερη από «N» φορές, η δοκιμή θα αποτύχει.
- Παράδειγμα: `Βεβαιωθείτε (Mock, Times (2)). SOMEMETHOD (), Εξασφαλίζει ότι το` somemethod () `ονομάζεται ακριβώς δύο φορές.
- Χρησιμοποιήστε την περίπτωση: Χρησιμοποιήστε όταν πρέπει να εξασφαλίσετε έναν ακριβή αριθμό επικλήσεων.

atleast (n)

- Σκοπός: Αυτή η μέθοδος επαληθεύει ότι μια μέθοδος ονομάζεται τουλάχιστον `n` φορές. Εάν η μέθοδος ονομάζεται λιγότερο από `n` φορές, η δοκιμή θα αποτύχει, αλλά θα περάσει αν ονομάζεται περισσότερο από` n` φορές.
- Παράδειγμα: `Βεβαιωθείτε (MOCK, ATLEAST (2)). SOMEMETHOD (), Εξασφαλίζει ότι το` somemethod () `ονομάζεται τουλάχιστον δύο φορές.
- Χρήση περίπτωση: Χρησιμοποιήστε όταν θέλετε να εξασφαλίσετε έναν ελάχιστο αριθμό επικλήσεων, αλλά δεν ενδιαφέρεστε για το μέγιστο.

βασικές διαφορές

- Ακριβώς έναντι ελάχιστων: `φορές (n)` απαιτεί ακριβή αριθμό κλήσεων, ενώ `atleast (n)` απαιτεί τουλάχιστον αυτόν τον αριθμό κλήσεων.
- Ευελιξία: `atleast (n)` είναι πιο ευέλικτη καθώς επιτρέπει περισσότερες κλήσεις από τις καθορισμένες, ενώ οι χρόνοι (n) `είναι αυστηροί για τον αριθμό των κλήσεων.
- Χειρισμός σφαλμάτων: Εάν μια μέθοδος ονομάζεται περισσότερες φορές από ό, τι καθορίζεται με `Times (n)`, το Mockito θα ρίξει μια εξαίρεση (`toomanyactualInvocations '). Με `atleast (n)`, θα αποτύχει μόνο εάν η μέθοδος ονομάζεται λιγότερες φορές από ό, τι καθορίζεται (`ToolittleActualInvocations ').

Συνοπτικά, οι χρόνοι (n) `χρησιμοποιούνται για τον ακριβή έλεγχο του αριθμού των κλήσεων μεθόδων, ενώ το` atleast (n) `χρησιμοποιείται για να εξασφαλίσει ένα ελάχιστο κατώφλι κλήσεων χωρίς να περιορίζει τον μέγιστο αριθμό κλήσεων.

Αναφορές:
[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-between-atleasonce-and-mimes1-in-mockito
[2] https://mincong.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-parameter
[7] https://www.digitalocean.com/community/tutorials/mockito-verify
[8] https://stackoverflow.com/questions/27787487/java-verify-void-method-calls-n-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-called-multiple-times/54233921