Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Яка різниця між часом (n) та принаймні (n) в методі перевірки Mockito


Яка різниця між часом (n) та принаймні (n) в методі перевірки Mockito


У Mockito, `times (n)` і `принаймні (n)` використовуються в методі `перевірити ', щоб перевірити, скільки разів метод називається макетним об'єктом. Ось детальне пояснення кожного:

Times (n)

- Мета: Цей метод підтверджує, що метод називається точно `n` times. Якщо метод називається більш -менш `n` разів, тест вийде з ладу.
- Приклад: `Перевірте (макет, часи (2)). Somemethod ();` гарантує, що `somemethod ()` називається рівно двічі.
- Використовуйте випадок: Використовуйте, коли вам потрібно забезпечити точну кількість викликів.

принаймні (n)

- Мета: Цей метод підтверджує, що метод називається принаймні `n` times. Якщо метод називається менше `n` разів, тест вийде з ладу, але він пройде, якщо його називатимуть більше` n` разів.
- Приклад: `Перевірте (макет, принаймні (2)). Somemethod ();` гарантує, що `somemethod ()` називається щонайменше двічі.
- Використовуйте випадок: Використовуйте, коли ви хочете забезпечити мінімальну кількість викликів, але не дбайте про максимум.

Ключові відмінності

- Точний проти мінімуму: `рази (n)` Потрібна точна кількість дзвінків, тоді як `принаймні (n)` вимагає принаймні такої кількості дзвінків.
- Гнучкість: `принаймні (n)` є більш гнучким, оскільки дозволяє отримати більше дзвінків, ніж зазначено, тоді як `рази (n)` суворо ставляться до кількості дзвінків.
- Поводження з помилками: Якщо метод називається більше разів, ніж зазначено з `Times (n)`, Mockito кине виняток (`toomanyactualInvocations`). З `принаймні (n)` він вийде з ладу лише в тому випадку, якщо метод називається менше разів, ніж зазначено (`TooliteittleActualInvocations`).

Підводячи підсумок, `Times (n)` використовується для точного контролю над кількістю викликів методів, тоді як `принаймні (n)` використовується для забезпечення мінімального порогу дзвінків, не обмежуючи максимальну кількість дзвінків.

Цитати:
[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-betweend-atleastonce-and-times1-in-mockito
[2] https://mincong.io/2019/09/22/mockitoverify/
[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/tutories/mockitoverify
[8] https://stackoverflow.com/questions/27787487/java-verify-void-method-calls-n-times-with-mockito
[9] https://www.javacodegeeks.com/2015/11/mockitoverification.html
[10] https://stackoverflow.com/questions/54233024/how-to-verify-a-method-which-was-called-multiple-times/54233921