Verificação preguiçosa com o Mockito 2
1. Introdução
Neste breve tutorial, vamos dar uma olhada nas verificações preguiçosas no Mockito 2.
Em vez de falhar rapidamente, o Mockito nos permite ver todos os resultados coletados e relatados no final de um teste.
2. Dependências do Maven
Vamos começar adicionando a dependênciaMockito 2:
org.mockito
mockito-core
2.21.0
3. Verificação preguiçosa
The default behavior of Mockito is to stop at the first failure, ou seja, avidamente - a abordagem também é conhecida comofail-fast.
Às vezes, podemos precisar executar e relatar todas as verificações - independentemente das falhas anteriores.
VerificationCollector é uma regra JUnit que coleta todas as verificações nos métodos de teste.
Eles são executados e relatados no final do teste se houver falhas:
public class LazyVerificationTest {
@Rule
public VerificationCollector verificationCollector = MockitoJUnit.collector();
// ...
}
Vamos adicionar um teste simples:
@Test
public void testLazyVerification() throws Exception {
List mockList = mock(ArrayList.class);
verify(mockList).add("one");
verify(mockList).clear();
}
Quando este teste é executado,failures of both verifications will be reported:
org.mockito.exceptions.base.MockitoAssertionError: There were multiple verification failures:
1. Wanted but not invoked:
arrayList.add("one");
-> at com.example.mockito.java8.LazyVerificationTest.testLazyVerification(LazyVerificationTest.java:21)
Actually, there were zero interactions with this mock.
2. Wanted but not invoked:
arrayList.clear();
-> at com.example.mockito.java8.LazyVerificationTest.testLazyVerification(LazyVerificationTest.java:22)
Actually, there were zero interactions with this mock.
Sem a regraVerificationCollector, apenas a primeira verificação é relatada:
Wanted but not invoked:
arrayList.add("one");
-> at com.example.mockito.java8.LazyVerificationTest.testLazyVerification(LazyVerificationTest.java:19)
Actually, there were zero interactions with this mock.
4. Conclusão
Examinamos rapidamente como podemos usar a verificação lenta no Mockito 2.
Além disso, como sempre, as amostras de código podem ser encontradasover on GitHub.