Ответ
Да, есть практический опыт в модульном (unit) и интеграционном тестировании.
Модульное тестирование:
- Использовал JUnit 5 и Mockito для изолированного тестирования компонентов.
- Следовал паттерну AAA (Arrange-Act-Assert) для структурирования тестов.
@Test
void getUserById_ShouldReturnUser_WhenUserExists() {
// Arrange
UserRepository mockRepo = Mockito.mock(UserRepository.class);
UserService userService = new UserService(mockRepo);
User expectedUser = new User("test@email.com", "Test User");
Mockito.when(mockRepo.findById(1L)).thenReturn(Optional.of(expectedUser));
// Act
User result = userService.getUserById(1L);
// Assert
assertEquals("Test User", result.getName());
Mockito.verify(mockRepo).findById(1L);
}
Интеграционное тестирование:
- Писал тесты для Spring Boot-приложений с использованием @SpringBootTest.
- Тестировал взаимодействие с базами данных, REST API и другими сервисами.
Также знаком с принципами TDD (Test-Driven Development) и важностью поддержания высокого покрытия кода тестами для обеспечения качества и упрощения рефакторинга.