Verificação preguiçosa com o Mockito 2

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.