Для тестирования самого слушателя:
Вам не нужно @SpringBootTest
для каждого теста приложения Spring Boot (я бы сказал, что вам нужно минимум таких тестов, поскольку они загружают все).
Существуют и другие варианты:
- Если вам не нужно ничего из Spring: модульное тестирование сервиса с помощью Mockito (если у него есть зависимости, которые вы хотите удалить).
- В противном случае: используйте слайсы - например,
@JsonTest
автоматически настроит ObjectMapper
и другие компоненты для работы с JSON. Их довольно много, поэтому проверьте документацию, если есть какая-либо часть приложения, которую вы хотели бы автоматически настроить для своего теста.
Для исключения слушателя из других @SpringBootTest
тестов:
Я вижу два варианта:
- Перебрасывание компонента слушателя с помощью
@MockBeans
.
@SpringBootTest
@MockBeans(@MockBean(Listener.class))
public class SomeTest {
// ...
}
- Выполнение тестов внутри определенного c профиля и пометьте компонент-слушатель, который будет включен только в профиль по умолчанию. (Или не в профиле «test».)
@Component
@Profile("default") // OR: @Profile("!test")
public class Listener {
// ...
}
@SpringBootTest
@ActiveProfiles("test")
public class SomeTest {
// ...
}
Возможно, вам потребуется извлечь слушатель из существующего компонента, если вам нужен компонент как зависимость для другой службы.