Testing in Spring Boot
Testing in Spring Boot: @SpringBootTest, @WebMvcTest, @DataJpaTest, MockMvc, TestRestTemplate, slice di test
1Quale annotazione usare per caricare il contesto completo di Spring Boot in un test di integrazione?
Quale annotazione usare per caricare il contesto completo di Spring Boot in un test di integrazione?
Risposta
@SpringBootTest carica il contesto completo dell'applicazione, inclusi tutti i bean e le auto-configurazioni. Questa annotazione è usata per i test di integrazione che richiedono l'intera applicazione. @WebMvcTest e @DataJpaTest caricano solo una parte del contesto (test slicing), mentre @ContextConfiguration è un'annotazione di più basso livello per configurare manualmente il contesto (più complessa).
2Che cos'è il test slicing in Spring Boot?
Che cos'è il test slicing in Spring Boot?
Risposta
Il test slicing consiste nel caricare solo una parte specifica del contesto Spring per velocizzare i test. Ad esempio, @WebMvcTest carica solo i componenti web (controller, filter), mentre @DataJpaTest carica solo i repository JPA. Questo riduce il tempo di avvio e migliora le prestazioni dei test evitando di caricare bean non necessari.
3Quale annotazione usare per testare solo un controller Spring MVC?
Quale annotazione usare per testare solo un controller Spring MVC?
Risposta
@WebMvcTest è progettato specificamente per testare i controller Spring MVC. Questa annotazione carica solo i componenti web (controller, @ControllerAdvice, filter, interceptor) e configura automaticamente MockMvc. @SpringBootTest caricherebbe l'intero contesto (inutile per testare un singolo controller), @DataJpaTest è per i repository e @RestClientTest è per testare i client HTTP (RestTemplate, WebClient).
A cosa serve l'annotazione @MockBean in Spring Boot Test?
Quale oggetto usare per simulare richieste HTTP in un test con @WebMvcTest?
+27 domande da colloquio
Altri argomenti di colloquio Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging con SLF4J e Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Gestione delle eccezioni
Bean Validation
Fondamenti di Spring Data JPA
Entità JPA e relazioni
Query JPA
Spring Data Repositories
Fondamenti di Spring Security
Spring Boot Actuator
Test unitari con JUnit e Mockito
Profiles e Environment
RestTemplate e WebClient
Async e Scheduling
Caching con Spring
Spring WebFlux (Reactive)
Transazioni Spring
Autenticazione e autorizzazione avanzate
JWT e sicurezza stateless
OAuth2 e Authorization Server
Spring Boot e Docker
Microservices con Spring
Spring Cloud Config
Ottimizzazione delle prestazioni
GraalVM Native Images
Padroneggia Spring Boot per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis