1. Facts(사실, 객관)
- 프로젝트 스터디 테스트코드 작성
2. Feelings(느낌, 주관)
스터디 api controller 테스트 코드를 작성했습니다. 시큐리티, 기타 예외처리 등을 추가하면서 기존에 작성했던 프로젝트 코드들이 변동된게 많습니다. 물론 그때마다 테스트코드를 수정하고 고민하면 좋겠지만, 시큐리티의 경우 배움을 적용하다보니 테스트코드에서 문제가 있을 것을 예상했습니다. 그러면 너무 테스트코드에 시간이 많이 뺏겨서 오히려 시큐리티 공부가 안될거라 생각해 먼저 코드를 다 만들고 테스트코드를 수정했습니다. 그동안 테스트를 미룬탓인지 controller 검사를 위해 어떤 기능들을 썼는지 새로웠지만, 여러번 하다보니 다시 금방 익숙해졌습니다. 현재 모든 테스트들이 영어 메서드명으로 작성되어 있는데, 추후 한글로 어떤 테스트인지 나타낼 예정입니다.
3. Findings (배운 점)
시큐리티 설정이 있다보니, mockMvc를 사용할 때 인증부분을 설정해야 한다. spring security test를 사용해서 다양한 어노테이션을 사용할 수도 있지만, 간단하게 시큐리티 인증객체를 다음과 같이 추가할 수도 있다.
SecurityContextHolder.getContext().setAuthentication(accountWithSetupStudyToken);
given()에서 eq(), any()를 사용할 수 있다. 하지만 이것들을 일반 "raw String"과 섞어쓰면 문제가 생긴다. 유의하여 작성한다.
WebSecurityConfigurerAdapter를 상속하는 클래스는 시큐리티 검사를 위해서 매번 실행되기 때문에, @MockBean으로 해당 클래스에 정의되어있는 스프링 빈 관리 객체들을 등록한다.
4. Affirmation (자기 선언)
나는 코드를 짜고 끝내지 않고 테스트코드를 통해 계속 유지보수를 하는 사람이다.
'회고' 카테고리의 다른 글
TIL_211201 (0) | 2021.12.01 |
---|---|
TIL_211130 (0) | 2021.12.01 |
TIL_211127 (0) | 2021.11.28 |
TIL_211125 (0) | 2021.11.25 |
TIL_211124 (0) | 2021.11.25 |