본문 바로가기
Java & Kotlin/Spring

Rest Assured 테스트 시 redirect 막기

by devson 2021. 6. 3.

 

Rest Assured 를 사용하여 서버에 요청을 보낼 때 Spring Web application 에서 Found 와 같은 Redirect 응답을 하면

Controller 리턴하는 Redirect 응답이 오는 것이 아니라, Redirect 처리가 되어 Location header의 URL로 요청을 보낸 응답이 와서 assertion이 실패되는 케이스가 있었다.

 

에를 들어 Controller 에서 아래와 같이 Redirect 에 대한 ResponseEntity 를 응답할 때

Rest Assured 에서는 https://devs0n.tistory.com/ 에 대한 응답을 받는 것이다.

 

 

ResponseEntity
	.status(HttpStatus.FOUND)
	.location(URI.create("https://devs0n.tistory.com/"))
	.build()

 

이렇게 Rest Assured 로 Redirect 응답을 테스트할 때는 redirects().follow(false) 설정을 추가해주면 된다.

RestAssured
    .given().redirects().follow(false).log().all()
    .`when`().get("/redirect-url")
    .then().log().all()
    .extract()

 

RequestSpecification 의 메서드이기 때문에 when 뒤에redirects().follow(false) 설정을 하여도 된다.

 

 


 

참고: https://github.com/rest-assured/rest-assured/wiki/Usage#detailed-configuration

댓글