Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BE: #95 Api 공통 응답으로 리펙토링 + #96 TestContainer를 이용한 테스트 환경 구축 #97

Merged
merged 4 commits into from
Apr 27, 2024

Conversation

mclub4
Copy link

@mclub4 mclub4 commented Apr 25, 2024

Overview

  • Api 응답을 통일성있게 공통 응답으로 변경
  • Swagger 일부 Response가 제대로 안나오던 문제 해결
  • 공지사항 IndexError 수정
  • Hmac 직렬화로 변경
  • TestContainer를 이용한 테스트 환경 구축

Related Issue

Issue Number : closed #95 closed #96

Task Details

Api 공통 응답으로 변경

기본적으로 Api 응답을 통일되게 변경했습니다.

Api 요청 성공 응답

{
    "success": true,
    "response": {}
   "message" : "string"
}

Api 요청 성공 시, success가 true로 오며, 그에 대한 결과가 response로 옵니다.
message는 필요한 상황에서만 옵니다. (대부분은 오지 않습니다)
자세한 응답 결과는 swagger를 참조해주세요.

Api 요청 실패 응답

{
    "success": false,
    "code" : "code"
    "message" : "Error message"
}

Api 요청 실패 시, success가 false로 옵니다.
code와 message는 실패시 항상 옵니다.
code는 Test를 돌릴 때, 보다 쉽게 Test Case를 작성하기 위한 것입니다. (테스트 코드 참조)

Hmac 직렬화

저번 PR에서는 HMAC을 구분자로 보내라고 했는데, 이번에 직렬화로 바꿨습니다. 직렬화 한걸 HMAC으로 만들면 됩니다.

Swagger Response 오류

image

Api 공통 응답으로 바꾸니깐, Swagger가 제너릭을 잘 인식 못하기도 하고, Map<String, Object> 이렇게 Response로 줬더니 인식을 못해서 Wrapper Class 위와 같이 만들어서 해결했습니다.

TestContainer를 이용한 Test 환경 구축

개인적으로 매번 Postman으로 Api 테스트하는게 오바라고 생각했습니다. 그래서 저희 알파프로젝트도 TestContainer를 도입해서, Api 테스트를 진행하고 있습니다. 캡스톤 역시 이를 도입하는게 좋다고 봅니다.

테스트 실행시에 따로 데이터베이스 설정 없이 docker-compose 실행하듯이 DB 환경을 구성할 수 있습니다.

Warning

테스트를 위해서 docker 실행 준비가 되어있어야 합니다. 그리고 해당 이미지가 존재하지 않는 상태라면 처음엔 조금 느릴수도 있습니다.

테스트 환경 구축

image

위와 같이 실행환경 구축에서 Juit 설정을 위 사진과 같이 해주시면 됩니다.
환경변수는 메인 파일에 있던거 복붙해오면 됩니다.

image

이렇게 통합테스트를 통해 Api를 손쉽게 테스트 해볼 수 있습니다.

Test Scope & Checklist (Optional)

  • Test환경 잘 작동하는지 확인
  • HMAC 직렬화 오류 확인
  • Api 공통 요청이 잘 나오는지 확인

Review Requirements

개인적으로, 단위테스트까지 다 작성하며 TDD하는건 무리가 있고... API 통합 테스트 정도는 쓰는게 좋을 것 같다 생각합니다.

@mclub4 mclub4 added the 🔒 BE backend task label Apr 25, 2024
Copy link

@BlueBerrySoda BlueBerrySoda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드 정상작동 확인했습니다

@mclub4
Copy link
Author

mclub4 commented Apr 26, 2024

일부 수정할 부분이 있어서, 그 부분만 수정하고 제가 머지 할깨요~\

@mclub4 mclub4 merged commit e9fd037 into develop-back Apr 27, 2024
@mclub4 mclub4 deleted the refactor/be/#95-globalResponse branch May 3, 2024 08:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔒 BE backend task
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants