En Mockito, `Times (N)` y `al menos (N)` se usan dentro del método `Verify` para verificar cuántas veces se llama un método en un objeto simulado. Aquí hay una explicación detallada de cada uno:
Times (N)
- Propósito: este método verifica que un método se llama exactamente `n` veces. Si el método se llama más o menos que `n` veces, la prueba fallará.- Ejemplo: `verificar (simularse, tiempos (2)). Somemethod ();` asegura que `somemethod ()` se llama exactamente dos veces.
- Caso de uso: use cuando necesite asegurar un número preciso de invocaciones.
al menos (n)
- Propósito: este método verifica que un método se llama al menos `n` veces. Si el método se llama menos de `n` veces, la prueba fallará, pero pasará si se llama más de` n` veces.- Ejemplo: `verificar (simularse, al menos (2)). Somemethod ();` Asegura que `somemethod ()` se llama al menos dos veces.
- Caso de uso: use cuando desee asegurarse de un número mínimo de invocaciones, pero no le importa el máximo.
Diferencias clave
- Exacto vs. Mínimo: `Times (N)` Requiere un número exacto de llamadas, mientras que `al menos (n)` requiere al menos ese número de llamadas.- Flexibilidad: `al menos (N)` es más flexible, ya que permite más llamadas de las especificadas, mientras que `Times (N)` es estricto sobre el número de llamadas.
- Manejo de errores: si se llama un método más veces que el especificado con `Times (N)`, Mockito lanzará una excepción (`ToomanyActualInvocations '). Con `al menos (n)`, solo fallará si el método se llama menos veces que se especifica (`ToolItleLEActualInVocations`).
En resumen, `Times (N)` se usa para un control preciso sobre el número de llamadas de método, mientras que `al menos (n)` se utiliza para garantizar un umbral mínimo de llamadas sin restringir el número máximo de llamadas.
Citas:[1] https://stackoverflow.com/questions/58176580/what-is-the-diferference-between-atleastonce-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-mimes1-parameter
[7] https://www.digitalocean.com/community/tutorials/mockito-verify
[8] https://stackoverflow.com/questions/27787487/java-verify-void-method-calls-nmimes-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-mimes/54233921