스프링 부트 응용 프로그램-test.properties
junit을 사용하여 spring-boot 애플리케이션을 유닛 테스트하려고 합니다.application-test.properties를 src/test/resource 아래에 두었습니다.application.properties를 읽는 Application Configuration Class가 있습니다.
제 시험 수업은 이런식입니다.
@RunWith(SpringRunner.class)
@SpringBootTest(classes=ApplicationConfiguration.class)
@TestPropertySource(locations = "classpath:application-test.properties")
@ActiveProfiles("test")
public class TestBuilders {
@Autowired
private ApplicationConfiguration properties;
속성을 읽으려고 하면 항상 null입니다.
내 애플리케이션 구성 클래스는 다음과 같습니다.
@Configuration
@ConfigurationProperties
@PropertySources({
@PropertySource("classpath:application.properties"),
@PropertySource(value="file:config.properties", ignoreResourceNotFound =
true)})
public class ApplicationConfiguration{
private xxxxx;
private yyyyy;
구글에서 찾은 가능한 모든 방법을 시도했습니다.운이 없습니다.도와주세요!미리 감사드립니다.
문제는 당신이 가지고 있지 않다는 것입니다.@EnableConfigurationProperties
시험 시간에 말입니다.
응용 프로그램을 로드하면 메인 클래스에서 시작합니다.@SpringBootApplication
당신이 가질 수 있는 곳에@EnableConfigurationProperties
따라서 응용 프로그램을 시작할 때 작동합니다.
반면에 테스트를 실행할 때는ApplicationConfiguration
여기에 지정한 클래스
@SpringBootTest(classes=ApplicationConfiguration.class)
Spring은 Enable Configuration Properties(구성 속성)를 사용해야 하므로 필드가 주입되지 않으므로 null이 됩니다.하지만 봄은 당신의 것을 읽고 있습니다.application-test.properties
file. 이것은 당신의 테스트 클래스에서 값을 직접 주입하는 것만으로도 확인할 수 있습니다.
@Value("${xxxxx}")
private String xxxxx;
여기서 값이 주입됩니다.하지만 학생들에게 주입하는 것은ConfigurationProperties
를 사용하여 활성화해야 합니다.@EnableConfigurationProperties
놓다@EnableConfigurationProperties
시험 시간에 모든 것이 잘 됩니다.
언급URL : https://stackoverflow.com/questions/48111941/spring-boot-application-test-properties
'programing' 카테고리의 다른 글
new Wp_Query() 또는 pre_get_posts()를 사용자 지정 게시물 유형에 대한 모든 게시물을 볼 수 있습니까? (0) | 2023.09.15 |
---|---|
사용자 지정 이미지 필드와 다른 필드를 동시에 추가 (0) | 2023.09.15 |
grep 결과 파일의 첫 N줄을 삭제해야 합니다. (0) | 2023.09.15 |
jQuery를 사용하여 div에서 id 속성을 제거하는 방법? (0) | 2023.09.15 |
regex 및 Powershell이 있는 문자열에서 특정 데이터 추출 (0) | 2023.09.15 |