(TIL) 20221019/ 테스트 하기 좋은 코드
2022. 10. 20. 01:50ㆍTIL(Today I learned)
반응형
🏴Facts(한 것) & Findings(배운 것)
테스트하기 좋은 코드는 어떤 코드일까?
오늘 테스트 코드를 작성하면서 문득 이런 생각이 들었다.
결국 테스트는 '이 메서드가 똑바로 의도대로 똑바로 동작하냐?'에 대한 답이라고 생각한다.
그러려면 첫 번째로 코드에 의도가 잘 드러나야 한다.
의도가 잘 드러난 코드는 무엇일까? 나는 '관심사 분리가 잘 된 코드'라고 생각한다.
관심사 분리라고하면 어렵게 생각하는 분들이 많으신데,
예를 들어, getUser라는 메서드는 User를 반환해주기만 하면 된다.
올바른 데이터가 들어왔는지 확인하고, 여러 방법으로 찾고 뭐 어쩌고 하는 것은
외부에서 봤을 때 getUser의 관심사가 아닌 것이다.
그렇기 때문에 getUser가 가지고 있는 여러 책임들을 마땅히 분리해야한다.
이 '분리' 라는 것도 여러가지 방법이 있을 것이다.
대표적으로 private 메서드로 분리하는 방법이 있을것이다.
하지만 '객체 지향'인 만큼 클래스로 나누어서 객체에게 그 역할을 분담하는게 올바르다고 생각한다.
(객체 != 클래스)
이렇게 관심사 분리만 잘 해도 훨씬 수월하게 테스트 코드를 작성할 수 있다.
향로님께서 테스트에 관한 좋은 글을 작성하신게 있어서 가져왔다.
향로님이 다루고 계신 내용들은 관심사 분리가 잘 이루어진 후, 고민하면 좋을 거 같은 내용이라고 생각한다.
🏴Affirmation(자기 선언)
- 코틀린 || 스프링 || 리액트 강의 듣기 -> 실패
- Goole k8s 강의 듣기 -> 실패
- 알고리즘 문제 풀기 -> 성공
반응형
'TIL(Today I learned)' 카테고리의 다른 글
(TIL) 20221102, 테이블 연관관계의 역정규화 (0) | 2022.11.03 |
---|---|
(TIL) 20221027/ 책임에 따른 분리 (1) | 2022.10.27 |
(TIL) 20221013/ 토비의 스프링, 프로젝트 테스트 코드 (0) | 2022.10.14 |
(TIL) 20221011/Redis 데모 프로젝트 (0) | 2022.10.13 |
(TIL) 20221010/구름 알고리즘 챌린지 (0) | 2022.10.10 |