본문 바로가기

오답노트

TestRestTemplate webEnvironment 오류

TestRestTemplate - org.springframework.boot.test.web.client.TestRestTemplate

@SpringBootTest - org.springframework.boot.test.context.SpringBootTest

TestRestTemplate 을 통하여 api를 호출하고 그 결과값을 확인하기 위해 테스트를 작성한다.

 

 

이런 엄청나게 긴 오류가 나타났다.

 

다음 오류 내용이다.

Unsatisfied dependency expressed through field 'restTemplate'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type org.springframework.boot.test.web.client.TestRestTemplate' available: expected at least 1 bean which qualifies as autowire candidate.

 

스프링 부트에서 제공해 주는건데 해당 타입 빈이 없다고 한다.

 

TestRestTemplate 

 

해석하면 

임베디드 서버에서 @SpringBootTest 주석을 사용하는 경우 TestRestTemplate을 자동으로 사용할 수 있으며 테스트에 @Autowired 될 수 있습니다. 사용자 정의가 필요한 경우 (예 : 추가 메시지 변환기 추가) RestTemplateBuilder @Bean을 사용하십시오.

라고 한다.

 

SpringBootTest

webEnvironment 설정을 하지 않으면 기본 값은 Mock이라고 한다.

 

여기까지다.

 

왜 webEnvironment 를 수정해줘야 하는지 소스를 못찾겠다.

TestRestTemplate 은 서블릿 컨테이너가 필요하기 때문에? webEnvironment 를 수정해줘야 한다.

 

참고