Spring Boot даёт вам пирамиду тестирования: быстрые юнит-тесты без Spring, сфокусированные slice-тесты, загружающие часть контекста, и несколько полноконтекстных интеграционных тестов. Выбор правильного уровня для каждого теста — это senior-навык здесь.
Юнит-тест — вообще без Spring
Constructor injection означает, что большинству сервисной логики Spring не нужен вовсе; просто мокайте зависимости:
{
mock(PriceRepository.class);
(repo.base()).thenReturn(BigDecimal.TEN);
(repo);
assertThat(svc.priceOf()).isEqualByComparingTo();
}
