Short answer is your test class isn’t a Spring managed bean, so @Value never runs. Try using @SpringBootTest
as the class annotation.
@Component
is a Spring annotation, it marks a class as a candidate for component scanning, so Spring could register it as a bean if the application context is actually started.
But in a plain JUnit test (without @SpringBootTest
or @ExtendWith(SpringExtension.class)
for instance), there is no Spring context at all, so no scanning, no bean creation, no injection.