Testes no Spring Boot
Testes no Spring Boot: @SpringBootTest, @WebMvcTest, @DataJpaTest, MockMvc, TestRestTemplate, slices de teste
1Qual anotação usar para carregar o contexto completo do Spring Boot em um teste de integração?
Qual anotação usar para carregar o contexto completo do Spring Boot em um teste de integração?
Resposta
@SpringBootTest carrega o contexto completo da aplicação, incluindo todos os beans e auto-configurações. Essa anotação é usada para testes de integração que exigem a aplicação inteira. @WebMvcTest e @DataJpaTest carregam apenas parte do contexto (test slicing), enquanto @ContextConfiguration é uma anotação de nível mais baixo para configurar o contexto manualmente (mais complexa).
2O que é test slicing no Spring Boot?
O que é test slicing no Spring Boot?
Resposta
O test slicing consiste em carregar apenas uma parte específica do contexto Spring para acelerar os testes. Por exemplo, @WebMvcTest carrega apenas os componentes web (controllers, filters), enquanto @DataJpaTest carrega apenas os repositories JPA. Isso reduz o tempo de inicialização e melhora o desempenho dos testes ao evitar carregar beans desnecessários.
3Qual anotação usar para testar apenas um controller do Spring MVC?
Qual anotação usar para testar apenas um controller do Spring MVC?
Resposta
@WebMvcTest foi projetado especificamente para testar controllers do Spring MVC. Essa anotação carrega apenas os componentes web (controllers, @ControllerAdvice, filters, interceptors) e configura o MockMvc automaticamente. @SpringBootTest carregaria todo o contexto (desnecessário para testar um único controller), @DataJpaTest é para repositories e @RestClientTest é para testar clientes HTTP (RestTemplate, WebClient).
Para que serve a anotação @MockBean no Spring Boot Test?
Qual objeto usar para simular requisições HTTP em um teste com @WebMvcTest?
+27 perguntas de entrevista
Outros temas de entrevista Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging com SLF4J e Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Tratamento de exceções
Bean Validation
Fundamentos do Spring Data JPA
Entidades JPA e relacionamentos
Consultas JPA
Spring Data Repositories
Fundamentos do Spring Security
Spring Boot Actuator
Testes unitários com JUnit e Mockito
Profiles e Environment
RestTemplate e WebClient
Async e Scheduling
Caching com Spring
Spring WebFlux (Reactive)
Transações do Spring
Autenticação e autorização avançadas
JWT e segurança stateless
OAuth2 e Authorization Server
Spring Boot e Docker
Microservices com Spring
Spring Cloud Config
Otimização de desempenho
GraalVM Native Images
Domine Spring Boot para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis