No Mockito, `verifyzeroiTeraction` é um método de verificação especializado usado para garantir que nenhuma chamada de método seja feita em um objeto zombado durante um teste. Este método é crucial para manter a pureza dos testes de unidade, impedindo interações não intencionais que podem indicar falhas nas dependências lógicas ou desnecessárias.
Diferenças de outros métodos de verificação
1. Objetivo e comportamento:
- `verifyzeroiTeractions`: Este método verifica se nenhuma chamada de método foi feita em um objeto zombado. Se alguma chamada de método for detectada, o Mockito lançará uma exceção, fazendo com que o teste falhe. É usado para afirmar que um objeto simulado permanece intocado durante a execução do teste [1] [4].
- `verifique ': Este método é usado para verificar se as chamadas de método específicas ocorrem conforme o esperado. Ele permite verificar se um método foi chamado com argumentos específicos e pode ser usado com vários modos de verificação, como `times ()`, `atleast ()` e `atim ()` especificar o número de invocações [2] [7].
2. Modos de verificação:
- `verifyzeroiTeractions` não suporta modos de verificação. Ele simplesmente verifica a ausência de quaisquer interações.
- `Verify` suporta vários modos de verificação, como` times () `,` pelotleast () `,` atleastonce () `e` at mais () `, permitindo especificar quantas vezes um método deve ser chamado [2] [7].
3. Ordem de invocação:
- `VerifyzeroiTeractions` não se preocupa com a ordem das chamadas de método, pois ele verifica nenhuma interação.
- `verificou` pode ser usado com` inorder` para verificar a ordem das invocações de método em objetos simulados. Isso é útil quando a sequência de chamadas de método é importante [2] [7].
4. Casos de uso:
- `verifyzeroiTeractions` é normalmente usado quando você deseja garantir que um objeto simulado não seja usado em um cenário de teste. Isso ajuda a isolar a unidade em teste e garantir que nenhum efeito colateral ocorra devido a interações inesperadas [1] [4].
- `Verify` é usado em cenários em que você precisa confirmar que as interações específicas ocorrem entre objetos. É essencial para testar o comportamento esperado de um sistema em teste [2] [7].
5. Relacionamento com `verifyNomoreinteractions`:
- `VerifyZeroInterações 'Verifica se nenhuma interação ocorreu.
- `VerifyNomoreInteraction 'verifica se todas as interações em um objeto simulado foram verificadas. Ele garante que não haja interações não verificadas após o uso de `verifique 'para chamadas de método específicas [3] [9].
Em resumo, `verifyzeroiTeraction 'é um método especializado focado em garantir que nenhuma interação ocorra, enquanto` verificação' é mais versátil, permitindo que você verifique se há interações específicas e sua frequência. Ambos os métodos são essenciais nos testes de unidade com o Mockito, atendendo a propósitos diferentes, dependendo do cenário de teste.
Citações:[1] https://www.dhiwise.com/post/how-to-use-verifyzeroitractions-for-better--lutter-tests
[2] https://www.dhiwise.com/post/mastering-unit-testing-a-complete-guide-to-mockito-verify
[3] https://stackoverflow.com/questions/52396683/difference-between-verifynomoreinteractions-and-verifyzeroiations-in-mockit
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.verifyzeroiTeractions
[5] https://stackoverflow.com/questions/64239160/using-mockito-when-to-mock-and-verify-vs-mockito-verify
[6] https://www.javacodegeeks.com/2015/11/mockito-verrifation.html
[7] https://www.toptal.com/java/a-guide-to-everyday-mockito
[8] https://www.baeldung.com/mockito-verify
[9] https://www.digitalocean.com/community/tutorials/mockito-verify