Тестування Spring Boot
Тестування Spring Boot: @SpringBootTest, @WebMvcTest, @DataJpaTest, MockMvc, TestRestTemplate, зрізи тестів
1Яку анотацію використовувати, щоб завантажити повний контекст Spring Boot для інтеграційного тесту?
Яку анотацію використовувати, щоб завантажити повний контекст Spring Boot для інтеграційного тесту?
Відповідь
@SpringBootTest завантажує повний контекст застосунку, включно з усіма bean і автоконфігураціями. Ця анотація використовується для інтеграційних тестів, які потребують усього застосунку. @WebMvcTest і @DataJpaTest завантажують лише частину контексту (test slicing), тоді як @ContextConfiguration — це анотація нижчого рівня для ручного налаштування контексту (складніша).
2Що таке test slicing у Spring Boot?
Що таке test slicing у Spring Boot?
Відповідь
Test slicing означає завантаження лише певної частини контексту Spring для пришвидшення тестів. Наприклад, @WebMvcTest завантажує лише web-компоненти (controller, filter), а @DataJpaTest — лише JPA-репозиторії. Це зменшує час запуску й покращує продуктивність тестів, уникаючи завантаження непотрібних bean.
3Яку анотацію використовувати, щоб протестувати лише контролер Spring MVC?
Яку анотацію використовувати, щоб протестувати лише контролер Spring MVC?
Відповідь
@WebMvcTest спеціально розроблено для тестування контролерів Spring MVC. Ця анотація завантажує лише web-компоненти (controller, @ControllerAdvice, filter, interceptor) і автоматично налаштовує MockMvc. @SpringBootTest завантажив би весь контекст (зайве для тестування одного контролера), @DataJpaTest призначено для репозиторіїв, а @RestClientTest — для тестування HTTP-клієнтів (RestTemplate, WebClient).
Для чого призначена анотація @MockBean у Spring Boot Test?
Який об'єкт використовувати для імітації HTTP-запитів у тесті з @WebMvcTest?
+27 питань зі співбесід
Інші теми співбесід Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Логування за допомогою SLF4J та Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Обробка винятків
Bean Validation
Основи Spring Data JPA
Сутності JPA та зв'язки
Запити JPA
Spring Data Repositories
Основи Spring Security
Spring Boot Actuator
Модульне тестування з JUnit та Mockito
Profiles та Environment
RestTemplate і WebClient
Async і Scheduling
Кешування зі Spring
Spring WebFlux (Reactive)
Транзакції Spring
Розширена автентифікація та авторизація
JWT та stateless-безпека
OAuth2 та Authorization Server
Spring Boot і Docker
Microservices зі Spring
Spring Cloud Config
Оптимізація продуктивності
GraalVM Native Images
Опануй Spring Boot для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно