-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Mike Marciano edited this page Apr 23, 2024
·
23 revisions
O Mock nada mais é do que fazer uma implementação fictícia de uma classe ou de uma interface, assim como o stub, podemos dizer que o mock é um stub com algumas vantagens
- Não é necessário implementar uma interface ou extender uma classe como o stub faz, o mock faz isso em tempo de execução
- Facilidade de definir um comportamento fictício dinâmico em uma classe
- Verificar comportamento da classe com mock
Anotação | Descrição | OBS |
---|---|---|
@Mock | cria uma instancia de forma mockada, ela subistitui o Mockito.when | sempre criar um comportamento para esse mock, caso contrario teremos um nullPointer |
@InjectMocks | cria uma nova instancia e Injeta as dependências que estão com @mock e cria uma classe concreta. | cria uma nova instancia a cada teste |
@Captur | todos os testes | |
@Spy | Analisa ocorrências de chamadas usando objetos reais | todos os testes |
@ExtendWith | É utilizado para extender o mockito, com isso posso usar anotações | extensão necessária para que as anotention funcione |
Anotação | Descrição | USO. | OBS |
---|---|---|---|
Mockito.mock() | cria uma instancia de forma mockada | create mock | sempre criar um comportamento para esse mock, caso contrario teremos um nullPointer pois o mock instância o objeto com valores default |
Mockito.any(.class) | usado para passar parametros de forma dinamica | parametro | cria uma instancia do parametros que queremos passar |
Mockito.verify | verifica se aconteceu alguma ocorrencia | response | sempre criar um |
Mockito.when | cria uma resposta dinamica para o mock | response | cria uma resposta dinâmica para a dependência mockada, funciona em conjunto com o thenReturn |
thenReturn | cria uma resposta fixa para o mock | response | Funciona em conjunto com Mockito.when |
thenAnswer | cria uma resposta dinamica para o mock | response | Funciona em conjunto com Mockito.when |
Mockito.atLeast | vé usado junto com Mockito verify e analisa se occoreu pelo menos uma vez | . | sempre criar um |
Mockito.never | analisa se nunca ocorreu a chamada para determinado metodo | . | sempre criar um |
Mockito.in | analisa o ordem de execução das dependencias | . | sempre criar um |
Mockito.mockStatic | mock de um metodo estático | . | sempre criar um |
Mockito.times | é usado junto com Mockito verify e analisa se occoreu exatamento o numerot de vezes passado no parametro | . | sempre criar um |
<!-- Dependencias Mockito-->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<!-- Dependencias Mockito para usar anotacoes-->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupter</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<!-- Dependencias AssertJS-->
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.23.1</version>
<scope>test</scope>
</dependency>
<!-- Dependencia Junit-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
<!-- Dependencia Junit Para Adicionar os Parametros-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.10.1</version>
<scope>test</scope>
</dependency>
Note
Quando usamos a tag <scope>test</scope>
estamos dizendo para o maven que somente execute em ambiente de teste.