Я пишу приложение Spring Boot
и придумываю идею службы условного планирования. Я решил заполнить все свойства от application-test.yml
до @Value
и поместить его в HashMap
.
Что я не понимаю, почему во время модульного тестирования это всегда null
, независимо от того, находится ли оно в заполненном свойстве HashMap
или @Value
.
ReportService.java
:
@Component
public class ReportService {
@Value("${reports.name}")
private String name;
@Value("${reports.enabled}")
private Boolean enabled;
private final Map<String, Boolean> enabledReports = new HashMap<String, Boolean>() {{
put(name, enabled);
}};
boolean isEnabled(String reportName) {
System.out.println(enabledReports.keySet() + " : " + enabledReports.values());
System.out.println(name);
return false;
}
}
ReportServiceTest.java
:
@SpringBootTest
@SpringBootConfiguration
@RunWith(SpringRunner.class)
@TestPropertySource(locations="classpath:application-test.yml")
@EnableAutoConfiguration
public class ReportServiceTest {
private ReportService reportService = new ReportService();
@Test
public void test() {
reportService.isEnabled("reportName");
}
}
application-test.yml
:
reports:
name: "report"
enabled: false
Что я делаю не так?