회고
Facts(사실, 객관)
- 코드 리뷰 피드백 반영
- "/products" get 메서드 처리 코드 추가
Feelings(느낌, 주관)
Findings(배운 점)
Affirmation(자기 선언)
- 나는 라이브러리의 정확한 용도을 알고 사용하는 사람이다.
15:48 ~ 17:24
Facts(사실, 객관)
Feelings(느낌, 주관)
- 테스트 코드를 수정하였다.(참고1, 참고2)
- 변경내용을 정리하면 아래와 같다.
1. 리턴값을 직접적으로 확인하는 코드를, 리턴 타입만 확인하는것으로 변경하였다.
2. 의존성을 mocking하는 과정에서 실제 값을 쓰는 것에서 anyString(), anyInt()를 이용하여 추상화 하였다.
- 변경한 이유는 아래와 같다.
- 모든 의존성을 mocking하였으므로, 실제 값 테스트 하는것은 의미가 없다.
- 테스트 코드를 읽는 사람들에게, 리턴 여부보다, 리턴하는 실제 값이 더 중요하다는 인상을 줄 수 있다.
Findings(배운 점)
- 유닛테스트의 목적 : 의도한 대로 코드가 작동하는지 여부 확인 / 실제 값이 어떠한가는 크게 중요하지 않다.
Affirmation(자기 선언)
- 나는 의도가 명확하게 드러나는 코드를 작성하는 사람이다.
19:09 ~ 20:42
Facts(사실, 객관)
- "/products" get 요청 처리 코드 및 테스트 작성
Feelings(느낌, 주관)
- 의존성 mocking시 리턴타입에 anyString()등을 사용하였다
when(productRepository.save(any(Product.class)))
.thenReturn(new Product(anyString()));
- anyString은 ArgumentMatchers에 포함된 메서드였음
- 메서드 호출시 입력받는 인자의 검증에 사용되는 메서드
- 몇몇 경우에서는 리턴타입에 ArgumentMatchers의 메서드를 사용하여도 문제가 발생하지 않았음
- 몇몇 경우에서는 리턴타입에 ArgumentMatchers를 사용하면 문제가 발생하였음
- 리턴타입에 사용하는것은 의도한 바가 아니었음
- 따라서 삭제 하였음
Findings(배운 점)
- ArgumentMatchers의 메서드의 올바른 사용법
Affirmation(자기 선언)
- 나는 작성된 의도대로 메서드를 사용하는 사람이다.