[SPRING] 스프링 응용 프로그램 컨텍스트가 시작되지 않는지 테스트하는 가장 좋은 방법은 무엇입니까?
SPRING스프링 응용 프로그램 컨텍스트가 시작되지 않는지 테스트하는 가장 좋은 방법은 무엇입니까?
나는 spring-boot-starter-web과 spring-boot-starter-test를 사용한다.
구성 속성 바인딩을위한 클래스가 있다고 가정 해 보겠습니다.
@ConfigurationProperties(prefix = "dummy")
public class DummyProperties {
@URL
private String url;
// getter, setter ...
}
이제 콩 검증이 정확한지 테스트하고 싶습니다. dummy.value 속성이 설정되지 않았거나 잘못된 URL이 포함되어 있으면 컨텍스트가 시작되지 않아야합니다 (특정 오류 메시지와 함께). 속성에 유효한 URL이 포함되어 있으면 컨텍스트가 시작됩니다. (이 테스트는 @NotNull이 없음을 보여줍니다.)
테스트 클래스는 다음과 같습니다.
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyApplication.class)
@IntegrationTest({ "dummy.url=123:456" })
public class InvalidUrlTest {
// my test code
}
제공된 특성이 유효하지 않기 때문에이 테스트는 실패합니다. Spring / JUnit에게 가장 좋은 방법은 무엇입니까? "예,이 오류가 예상됩니다". 일반 JUnit 테스트에서는 ExpectedException을 사용합니다.
해결법
-
==============================
1.통합 테스트가 시작되는 이유는 무엇입니까? 왜 당신은 그걸 위해 봄 부팅 응용 프로그램을 시작하고 있습니까?
통합 테스트가 시작되는 이유는 무엇입니까? 왜 당신은 그걸 위해 봄 부팅 응용 프로그램을 시작하고 있습니까?
이것은 나에게 단위 테스트처럼 보인다. 즉, 몇 가지 옵션이 있습니다.
나는 마지막으로 분명히 갈 것이다. 아마 당신은 통합 테스트를할만한 이유가 있을까요?
-
==============================
2.가장 쉬운 방법은 다음과 같습니다.
가장 쉬운 방법은 다음과 같습니다.
public class InvalidUrlTest { @Rule public DisableOnDebug testTimeout = new DisableOnDebug(new Timeout(5, TimeUnit.SECONDS)); @Rule public ExpectedException expected = ExpectedException.none(); @Test public void shouldFailOnStartIfUrlInvalid() { // configure ExpectedException expected.expect(... MyApplication.main("--dummy.url=123:456"); } // other cases }
from https://stackoverflow.com/questions/31692863/what-is-the-best-way-to-test-that-a-spring-application-context-fails-to-start by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Hibernate 사용자 정의 스키마 생성 (0) | 2019.07.18 |
---|---|
[SPRING] Jackson - JSON을 클래스 비 직렬화 (0) | 2019.07.18 |
[SPRING] 관리되지 않는 @Bean에 @ConfigurationProperties 사용 (0) | 2019.07.18 |
[SPRING] 스프링 부트 프로젝트 설정 설계 결정 (0) | 2019.07.18 |
[SPRING] Spring 부트 애플리케이션의 콘솔에서 조건 평가 보고서를 제외하려면 어떻게합니까? (0) | 2019.07.18 |