인텔리제이 http 테스트

전현진·2025년 6월 23일

최종프로젝트

목록 보기
4/5

서론 :

postman으로 통합 테스트를 하는 도중 한 팀원이 말하길

"귀찮게 postman으로 일일이 왔다갔다 하면서 작성하고 테스트 하는 것 보다, 우리 인텔리제이 울티메이트 사용하는 중이니깐 http 클라이언트로 테스트 하는건 어때요?"

이 말을 듣고 postman 말고 다른 통합 테스트 방식이 있었지? 라는 생각이 들고 이에 해보고 싶어서 http 클라이언트를 작성하기 했다.

1. 플러그인 설치

인텔리제이 '메인 메뉴'에서 settings > plugins > marketplace 에 들어가서 http client 찾고 설치 하면 간단히 플러그인 설치를 완료 할 수 있다.

2. 디렉토리 위치

사실 위치는 크게 상관 없지만 현업에서는 주로 많이 두는 위치가 있다. 빠른 접근성과 역할에 따른 구분을 위해 프로젝트 디렉토리 아래에 두는 경우가 많다.

3. API 기능별 구분

처음에는 하나의 http 파일로 사용했지만, 기능이 많을 수 록 엄청나게 긴 코드가 만들어져서 한개의 테스트를 위해 아래로 쭉 내려가야하는 번거로움이 발생하기에 각 기능별로 나누어 http 파일을 작성하게 되었다.

4. http 테스트 작성

Auth_API 부분으로 학생, 튜어, 관리자의 회원가입과 로그인이 구현되어 있다.

로그인 방식은 jwt 방식을 사용하기에 토큰을 studentAccessToken에 담는 걸 확인 할 수 있다.

이렇게 설정하면 다른 http 파일에서 {{studentAccessToken}}로 사용하면

인텔리제이가 알아서 studentAccessToken의 값을 입력에서 처리한다.

5. http-client.env.json 파일

인텔리제이가 자체적으로 판단하서 다른 http파일에 설정된 토큰의 값을 참조하여

다른 http파일에 적용하여 테스트 코드가 정상적으로 작동하게 만들어 주는데

가끔씩 해당 방식이 안 먹힐 때가 있다. 이는 명시적인 문제로 http의 환경변수 파일을 만들어 주면 해결이 된다.

위 처럼 http-client.env.json 생성하고 내용에

'dev : {}' 로 지정하면 {} 안의 내용이 dev의 환경변수로 설정이 된다.

이후 http 파일에서 Run with: 의 설정을 dev 수정하면

해당 http 파일은 dev에 설정된 환경변수를 따르기에 명시적 문제를 해결 할 수 있다.

6 gitignore 등록

테스트를 위해 http-client.env.json에 JWT 시크릿 키를 설정해서 넣어두었다.

인텔리제이 환경변수로 http-client.env.json 넣는 방법이 없으니 저렇게 세팅 하였지만

그렇기에 gitignore에 등록하여 깃허브에 공유 되지 않도록 막아둬야 한다.

참고로 나중에 알게된 사실인데

http-client.private.env.json 파일을 만들어 여기에 민감한 정보를 넣고 구별하여 관리 하는게 더 좋은 방법이라고 한다.


여담

postman 대신 처음으로 인텔리제이 http client를 사용했는데

postman 에서는 하나 테스트 하는데 세팅하고 작업하며 은근히 손이 많이 가면서도 토큰 같은 건 일일히 스크립을 작성해야 했는데,

http client는 다른 프로그램 거칠 필요없이 바로 작성하여 테스트 할 수 있고 토큰 역시 환경변수 파일 하나 만들어 주고 설정 한 두개 해주면 알아서 적용되니 엄청 편했습니다.

또한 테스트코드 대신에 http client만으로 테스트를 한다고 어디서 들었는데, 그렇다면 엄청나게 매력적이라고 생각하는데 그렇게 해도 되는지는 모르겠습니다.

profile
안녕하세요

0개의 댓글