(TIL) 20221019/ 테스트 하기 좋은 코드

2022. 10. 20. 01:50TIL(Today I learned)

반응형

🏴󠁩󠁤󠁪󠁷󠁿Facts(한 것) & Findings(배운 것)


테스트하기 좋은 코드는 어떤 코드일까?

 

오늘 테스트 코드를 작성하면서 문득 이런 생각이 들었다.

 

 

 

결국 테스트는 '이 메서드가 똑바로 의도대로 똑바로 동작하냐?'에 대한 답이라고 생각한다.

그러려면 첫 번째로 코드에 의도가 잘 드러나야 한다.

 

의도가 잘 드러난 코드는 무엇일까? 나는 '관심사 분리가 잘 된 코드'라고 생각한다.

 

관심사 분리라고하면 어렵게 생각하는 분들이 많으신데, 

예를 들어, getUser라는 메서드는 User를 반환해주기만 하면 된다.

 

올바른 데이터가 들어왔는지 확인하고, 여러 방법으로 찾고 뭐 어쩌고 하는 것은

외부에서 봤을 때 getUser의 관심사가 아닌 것이다.

 

그렇기 때문에 getUser가 가지고 있는 여러 책임들을 마땅히 분리해야한다.

 

이 '분리' 라는 것도 여러가지 방법이 있을 것이다.

대표적으로 private 메서드로 분리하는 방법이 있을것이다.

 

하지만 '객체 지향'인 만큼 클래스로 나누어서 객체에게 그 역할을 분담하는게 올바르다고 생각한다.

(객체 != 클래스)

 

 

이렇게 관심사 분리만 잘 해도 훨씬 수월하게 테스트 코드를 작성할 수 있다.

 

 

 

1. 테스트하기 좋은 코드 - 테스트하기 어려운 코드

팀 분들과 함께 NextStep - 이펙티브 코틀린 강좌를 수강하고 있다. 최근에 과제 회고를 처음 진행했는데, 이때 나온 주제가 테스트 하기 좋은 코드였다. 이 주제는 사실 이미 너무 많이 회자된 주

jojoldu.tistory.com

 

향로님께서 테스트에 관한 좋은 글을 작성하신게 있어서 가져왔다.

 

향로님이 다루고 계신 내용들은 관심사 분리가 잘 이루어진 후, 고민하면 좋을 거 같은 내용이라고 생각한다.


 

 

 

 

🏴󠁩󠁤󠁪󠁷󠁿Affirmation(자기 선언)


  • 코틀린 || 스프링 || 리액트 강의 듣기 -> 실패
  • Goole k8s 강의 듣기 -> 실패
  • 알고리즘 문제 풀기 -> 성공
반응형