В Mockito `times (n)` и `Actoste (n)` используются в методе `werify`, чтобы проверить, сколько раз метод вызывает на максимальном объекте. Вот подробное объяснение каждого:
Times (n)
- Цель: Этот метод проверяет, что метод называется ровно «n` times». Если метод называется более или меньше, чем `n` times, тест не удастся.- Пример: `verify (mock, times (2)). Somemethod ();` гарантирует, что `somemethod ()` называется ровно дважды.
- Использование: используйте, когда вам нужно обеспечить точное количество вызовов.
Actoste (n)
- Цель: этот метод проверяет, что метод называется как минимум «n` времени». Если метод называется меньше, чем «n», тест не пройдет, но он пройдет, если он будет вызван более чем `n` times.- Пример: `проверить (измельчите, по крайней мере (2)). SomeMethod ();` гарантирует, что `somemethod ()` называется как минимум дважды.
- Использование: используйте, когда вы хотите обеспечить минимальное количество вызовов, но не заботитесь о максимуме.
Ключевые различия
- Точный против минимума: `times (n)` требует точного количества вызовов, в то время как `Atster (n)` требует как минимум этого количества вызовов.- Гибкость: «По крайней мере» (n) `более гибкая, поскольку позволяет получить больше вызовов, чем указано, тогда как` times (n) `является строгим в отношении количества вызовов.
- Обработка ошибок: если метод называется более раз, чем указано с `times (n)`, Mockito выставит исключение (`toomanyactualinvocations`). С `Actoste (n)`, он не удастся только в том случае, если метод называется меньше раз, чем указано (`ToolIttleActualInvocations`).
Таким образом, «Times (n)» используется для точного управления количеству вызовов методов, в то время как «Actode (n)» используется для обеспечения минимального порога вызовов без ограничения максимального количества вызовов.
Цитаты:[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-between-atleasonce-and-times1-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.alleast
[6] https://stackoverflow.com/questions/60969650/use-forify-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-wich-was-called-multiple-times/54233921