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.
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
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.
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á.