Skip to content

Commit

Permalink
Update acceptance-test-auth.md
Browse files Browse the repository at this point in the history
  • Loading branch information
boorownie authored Feb 17, 2023
1 parent d38ddcc commit 2dd953f
Showing 1 changed file with 16 additions and 13 deletions.
29 changes: 16 additions & 13 deletions reviewguide/atdd-spring/acceptance-test-auth.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
## 1단계: 인증 기반 인수 테스트 도구 연습
## 1단계: 토큰을 이용한 로그인

- form 을 이용한 로그인과 token을 이용한 로그인을 위한 인수 테스트를 잘 작성하였는가?
- UsernamePasswordAuthenticationFilter, BearerTokenAuthenticationFilter
- @Secured 애너테이션을 이용하여 관리자 권한을 검증할 수 있도록 하였는가?
- 단위 테스트를 이용하여 Interceptor 구현 연습 가이드
- 테스트를 위한 샘플 코드는 대부분 제공 예정
- 테스트 구동을 통해 기능이 정상 동작하는지 여부를 바탕으로 가이드
- 실습과 함께 뼈대 코드를 이해하기 위한 목적
- 로그인 등 인증 기능에 대한 인수 테스트에서 인증 단계를 잘 적용했는가?
- 인증이 필요한 기능의 인수 테스트에서 적절한 흐름으로 인수 테스트를 작성했는가?
- 테스트에서 인증에 필요한 로직들의 가독성은 좋은지? 재사용성은 좋은지?
- 인증 인수 테스트에 필요한 초기값(회원 정보, 역할 정보 등)은 어떻게 설정했는지?
- 미션 문서 > 힌트에 DataLodaer를 이용하는 방법을 안내중
- Spring MVC 기능(Interceptor, ArgumentResolver 등)을 잘 활용했는지?
- 눈에 띄는 내용만 피드백 후 머지하여 빠르게 다음 단계 진행하도록 가이드

---

## 2단계: 인증 로직 리팩터링
## 2단계: 외부 서비스에 의존하는 인수 테스트

- 기존의 세션 로직과 1단계에서 구현한 토큰 로직에 대한 리팩터링 미션
- 세션, 토큰 외 추가 방법이 생기더라도 유연하게 구현할 수 있게끔 추상화 가이드
- **auth 패키지와 member 패키지에 대한 의존 제거**
- 외부 서비스에 대한 의존이 있는 로그인 기능을 잘 구현했는지?
- 해당 기능을 검증할 수 있는 테스트는 외부 서비스에 대한 의존을 어떻게 처리했는지?
- 실제 Github에 요청을 보낸 경우 수행 시간이 오래 걸리고 테스트 구성이 어려우므로 다른 방법으로 대체해 볼 수 있도록 가이드
- Stubbing을 통해 Github에 대한 요청/응답을 처리하는 객체를 대체한 경우 mock을 이용하기 때문에 스프링 컨테이너 재사용이 어렵고 프로덕션 코드에 직접 의존적이기 때문에 Fake방식으로 제안
- 테스트 전용 Profile을 이용해 깃헙으로 보내는 요청을 자체적으로 처리할 수 있도록 가이드
- 테스트용 Controller를 구축해도 좋고 TestContainer나 다른 도구를 사용해도 좋음(리뷰어가 각자 생각에 편한 방식으로 가이드 주기)
- 테스트용 코드를 어디서 어떻게 관리하는게 좋을 지 질문 던지기

---

Expand All @@ -24,4 +27,4 @@
- ATDD+TDD 전체 사이클 경험
- Member와 Favorite 관계에 따라서 서비스 로직이 달라질 수 있음
- 직접 참조 vs 간접 참조
- 둘 중 하나로 했다면 반대편 방법에 대해서 제시하고 고민할 수 있도록 가이드
- 둘 중 하나로 했다면 반대편 방법에 대해서 제시하고 고민할 수 있도록 가이드

0 comments on commit 2dd953f

Please sign in to comment.