인프런 커뮤니티 질문&답변

독커노인님의 프로필 이미지

작성한 질문수

토비의 스프링 부트 - 이해와 원리

테스트 코드를 이용한 테스트

TestRestTemplate로 테스트 하는데 403 FORBIDDEN이 응답으로 옵니다.

해결된 질문

23.01.24 03:20 작성

·

1.3K

0

 문제가 되는 코드입니다.

브라우저에서는 200 응답이 정상적으로 오는데 테스트 코드에서만 이런 문제가 생깁니다.

 

의심가는 부분은 user-agent인데 헤더를 설정해주는 부분이 TestRestTemplate에는 없어서 다른 해결 방법이 있는지 질문드립니다.

답변 1

1

토비님의 프로필 이미지
토비
지식공유자

2023. 01. 24. 04:53

강의의 예제를 그대로 따라하셨는데 이런 현상이 발생하는 것인가요? 왜 권한이 없다는 403 에러가 나는지 잘 모르겠습니다. 혹시 문제가 생기는 프로젝트 코드를 github 등에 공유해주시면 제가 받아서 한번 테스트를 해볼 수는 있습니다.

그런데, 말씀하신 user-agent 헤더 부분은 TestRestTemplate에서도 설정이 가능합니다. 조금 코드가 길어지기는 하는데 다음과 같이 사용하시면 됩니다.

        TestRestTemplate rest = new TestRestTemplate();

        HttpHeaders headers = new HttpHeaders();
        headers.add("User-Agent", "Mozilla/5.0");
        HttpEntity request = new HttpEntity(headers);

        ResponseEntity<String> res =
                rest.exchange("http://localhost:8080/hello?name={name}", HttpMethod.GET, request, String.class, "Spring");