Livro de receitas do Mockito Verifique

Livro de receitas do Mockito Verifique

1. Visão geral

Este livro de receitas ilustrahow to use Mockito verify em uma variedade de casos de uso.

Oformat of the cookbook is example focusede prático - sem detalhes estranhos e explicações necessárias.

Vamos ser a implementação democking a simple list:

public class MyList extends AbstractList {

    @Override
    public String get(final int index) {
        return null;
    }
    @Override
    public int size() {
        return 0;
    }
}

Leitura adicional:

Lançamento de exceção de zombaria usando o Mockito

Aprenda a configurar uma chamada de método para lançar uma exceção no Mockito.

Read more

Recursos do Java 8 de Mockito

Visão geral do suporte ao Java 8 na estrutura do Mockito, incluindo Streams e métodos de interface padrão

Read more

Zombando de métodos particulares usando o PowerMock

Aprenda como o PowerMock pode ser usado para estender a capacidade do Mockito para zombar e verificar métodos privados na classe em teste.

Read more

2. The Cookbook

verificar invocação simples em simulação

List mockedList = mock(MyList.class);
mockedList.size();
verify(mockedList).size();

verificar o número de interações com simulação

List mockedList = mock(MyList.class);
mockedList.size();
verify(mockedList, times(1)).size();

verifique se não ocorreu nenhuma interação com toda a simulação

List mockedList = mock(MyList.class);
verifyZeroInteractions(mockedList);

verificar se não ocorreu nenhuma interação com um método específico

List mockedList = mock(MyList.class);
verify(mockedList, times(0)).size();

verifique se não há interações inesperadas - isso deve falhar:

List mockedList = mock(MyList.class);
mockedList.size();
mockedList.clear();
verify(mockedList).size();
verifyNoMoreInteractions(mockedList);

verificar a ordem das interações

List mockedList = mock(MyList.class);
mockedList.size();
mockedList.add("a parameter");
mockedList.clear();

InOrder inOrder = Mockito.inOrder(mockedList);
inOrder.verify(mockedList).size();
inOrder.verify(mockedList).add("a parameter");
inOrder.verify(mockedList).clear();

verificar se uma interação não ocorreu

List mockedList = mock(MyList.class);
mockedList.size();
verify(mockedList, never()).clear();

verificar se uma interação ocorreu pelo menos um certo número de vezes

List mockedList = mock(MyList.class);
mockedList.clear();
mockedList.clear();
mockedList.clear();

verify(mockedList, atLeast(1)).clear();
verify(mockedList, atMost(10)).clear();

verifique a interação com o argumento exato

List mockedList = mock(MyList.class);
mockedList.add("test");
verify(mockedList).add("test");

verificar a interação com flexível / qualquer argumento

List mockedList = mock(MyList.class);
mockedList.add("test");
verify(mockedList).add(anyString());

verificar a interação usando a captura de argumento

List mockedList = mock(MyList.class);
mockedList.addAll(Lists. newArrayList("someElement"));
ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(List.class);
verify(mockedList).addAll(argumentCaptor.capture());
List capturedArgument = argumentCaptor.> getValue();
assertThat(capturedArgument, hasItem("someElement"));

3. Conclusão

Este formato é um experimento - estou publicando alguns dos meus livros de receitas de desenvolvimento interno sobre um determinado tópico - emGoogle Guava,Hamcrestenow Mockito. O objetivo é ter essas informações prontamente disponíveis on-line - e adicioná-las sempre que encontrar um novo exemplo útil.

A implementação de todos esses exemplos e trechos de códigocan be found on GitHub - este é um projeto baseado em Maven, portanto, deve ser fácil de importar e executar como está.