Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Qual é a diferença entre os tempos (n) e pelo menos (n) no método de verificação de Mockito


Qual é a diferença entre os tempos (n) e pelo menos (n) no método de verificação de Mockito


No Mockito, os tempos (n) `e` pelo menos (n) `são usados ​​dentro do método` verifique 'para verificar quantas vezes um método é chamado em um objeto simulado. Aqui está uma explicação detalhada de cada um:

Times (n)

- Objetivo: Este método verifica se um método é chamado exatamente de `n '. Se o método for chamado mais ou menos que `n` vezes, o teste falhará.
- Exemplo: `Verifique (Mock, Times (2)). Somemethod ();` garante que `somemethod ()` seja chamado exatamente duas vezes.
- Caso de uso: Use quando precisar garantir um número preciso de invocações.

pelo menos (n)

- Objetivo: Este método verifica se um método é chamado pelo menos `n '. Se o método for chamado menos de `n` vezes, o teste falhará, mas passará se for chamado mais do que 'n'.
- Exemplo: `Verifique (simulado, pelo menos (2)). Somemethod ();` garante que `somemethod ()` seja chamado pelo menos duas vezes.
- Use Caso: Use quando deseja garantir um número mínimo de invocações, mas não se importa com o máximo.

Diferenças -chave

- exato vs. mínimo: `times (n)` requer um número exato de chamadas, enquanto `pelo menos (n)` requer pelo menos esse número de chamadas.
- Flexibilidade: `pelo menos (n)` é mais flexível, pois permite mais chamadas do que o especificado, enquanto `times (n)` é rigoroso com o número de chamadas.
- Manuseio de erros: se um método for chamado mais vezes do que especificado com `times (n)`, o Mockito lançará uma exceção (`toomanyactualInvocations`). Com `pelo menos (n)`, ele só falhará se o método for chamado menos vezes do que o especificado ('ToolittleActualInvocations`).

Em resumo, os tempos (n) `são usados ​​para controle preciso sobre o número de chamadas de método, enquanto o pelo menos (n)` é usado para garantir um limite mínimo de chamadas sem restringir o número máximo de chamadas.

Citações:
[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-between-atleastonce-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.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