Rest Assured 간단하게 살펴보기

June·2022년 5월 8일
0

우테코

목록 보기
39/84

RestAssured란

RestAssured는 REST 기반의 서비스에서 테스트를 도와주는 자바 라이브러리다.

간단하게 gradle/Maven으로 추가할 수 있으며 버전은 링크 참고.

Rest Assured 는 HTTP와 JSON을 기반으로 테스트하므로 언어에 독립적이다. 따라서 테스트하고자 하는 어플리케이션이 Python으로 작성되었든 Ruby로 작성되었든 테스트할 수 있다.

특징 1 - 통합테스트

RestAssured는 기본적으로 통합테스트의 성격을 가진다. 테스트의 과정에서 주어진 Uri로 요청을 보내고 받은 Response가 원하는대로 왔는지 테스트하는 것이기 때문이다.

만약 컨트롤러를 유닛 테스트하고 싶다면 spring-mock-mvc를 통해서 단위테스트 할 수도 있다.

특징 2 - BDD 내장

기본적으로 테스트 코드를 작성할 때 given/when/then을 메서드로 쓸 수 있다.

인덴트를 잘 맞춰서 사용하면 given/when/then을 가독성 좋게 쓸 수 있다.

또한 위의 코드처럼 then() 이후 간단하게 response의 값으로 assert까지 한번에 처리할 수 있다.

공식 문서에서 컨벤션이라고는 하지 않았지만 예제들을 보면 점이 항상 라인이 바뀌기 전에 끝에 찍혀있다. 일반적으로 자바 코딩을 할때 점을 라인 첫번째 시작할 때 찍는 것과 대조된다.

특징 3 - 다양한 형식의 직렬화 지원

http 메시지 바디에 담을 내용을 다양한 형식으로 담을 수 있다.
내부적으로 우선순위에 따라 Jackson2를 이용해서 JSON으로 변환한다.

위의 코드에서는 Map을 이용해서 body에 데이터를 담아 보내고 있다.

위의 코드에서는 자바 객체를 바로 담고 있다.

특징 4 - 간편한 로깅 지원

위의 코드에서 given() 뒤에 log().all()이 있고 then() 뒤에도 log().all()이 있다.
given 뒤의 log().all()은 리퀘스트에 대해 로그를 남기는 것이고 then 뒤의 log().all()은 리스폰스에 대한 로그를 남기는 것이다.

코드에서는 all()을 사용했지만 원하는 것만 골라서 볼 수도 있다. params, body, headers, cookies, method 등이 있다.

공식 문서

RestAssured 문서 및 Github

0개의 댓글