2015-01-09 7 views
2

사소한 질문 인 경우 사전에 사과드립니다. C#/.NET의 배경에서 봄 프레임 워크를 처음 접했습니다.유닛 테스트 봄 부팅 애플리케이션 엔드 포인트

"/ health"에 정의 된 건강 종점이있는 작은 스프링 부팅 응용 프로그램이 있습니다. 이것은 코드에서 다음과 같이 정의됩니다.

@Component 
public class MyHealthEndpoint implements HealthIndicator { 
    public Health health() { 
    # ... 
    # returns health info as JSON here 
    # ... 
    } 
} 

따라서 응용 프로그램을 실행할 때 localhost/health에서 엔드 포인트를 방문하면 일부 응용 프로그램 상태 정보가 반환됩니다.

내 질문은 : 이것을 테스트하는 가장 좋은 방법은 무엇입니까?

MyHealthEndpoint 클래스의 단위 테스트를하고 싶습니다. 작동하지 않는 @Autowired를 사용하여 테스트 클래스에서 인스턴스화를 시도했습니다. 또한

MyHealthEndpoint testHealthEndpoint = new MyHealthEndpoint(); 

와 테스트 클래스에서 인스턴스화 시도했지만이 너무 분명 의존성 주입/봄 부팅에서 IOC가 등록하지 않거나, 난, 아니 건강 정보와 하늘의 새 클래스를 반환 스프링에 대한 초보자가 너무 많아 올바르게 수행하는 법을 알지 못합니다.

응용 프로그램을 시작하고 테스트 http GET 호출을 끝점으로 직접 실행 한 다음 반환 된 JSON을 지정하거나 더 좋은 아이디어가 있으면 통합 테스트를 실행할 수있는 유일한 솔루션입니까?

감사합니다.

답변

1

당신은 확인 스프린트 테스트 상황에 맞는 프레임 워크를 사용한다이 : https://maven-repository.com/artifact/org.springframework/spring-test

당신은 @ContextConfiguration 당신과 함께 테스트 클래스 (또는 부모 클래스) 주석을한다 : 당신은 여기에 lib 디렉토리를 찾을 수 있습니다 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/testing.html#integration-testing-annotations

config xml (locations 매개 변수) 및 config java 클래스 (classes 매개 변수)를 설정할 수 있습니다. 그리고 SpringMVC를 사용하는 경우 @WebAppConfiguration 주석을 추가 할 수도 있습니다

@A를 사용할 수 있습니다 테스트에서 유추했다.

+0

한편 나는 Spring * MVC 테스트 프레임 워크 * https://spring.io/blog/2012/11/12/spring-framework-3-2-rc1-spring-mvc-test-framework를 사용하기 시작했다. 스프링 기반 REST 엔드 포인트 테스트에 적합한 솔루션입니다. –