STUDY/Books

[Clean Code] 9장 단위 테스트

hyunah 2021. 5. 25. 13:11

Clean Code 스터디 내용 정리; 9장 단위 테스트


깨끗한 테스트 코드의 중요성과 테스트 코드를 작성할 때 신경 써야할 부분에 대해 다룬다.




TDD 법칙

  1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
  2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
  3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.





깨끗한 테스트 케이스의 중요성


테스트 코드는 실제 코드의 유연성, 유지보수성, 재사용성을 보존하고 강화하기 때문에 매우 중요하다. 테스트 케이스가 있다면 코드가 아무리 부실하고 설계가 모호하여도 별다른 우려와 공포 없이 안심하고 아키텍쳐를 개선할 수 있다. 테스트 코드가 지저분하면 실제 코드를 변경하는 능력과 코드 구조를 개선하는 능력이 떨어진다.







깨끗한 테스트 코드를 만들려면?


깨끗한 테스트 코드를 만들기 위해선 가독성이 반드시 필요하다. 최소한의 표현으로 많은 것을 나타내야 한다. 읽는 사람이 좀 더 이해하기 쉽게 잡다하고 세세한 코드를 줄이고 진짜 필요한 자료 유형과 함수만 사용하도록 만드는 게 좋다.

  1. 도메인 특화 언어(DSL) 사용
  2. 효율성보다 이해하기 쉬운 코드를 작성하는 것에 집중
  3. 테스트 함수 하나는 개념 하나만 테스트하도록 하고, 테스트 하나 당 assert문 개수는 최소한으로 한다.






깨끗한 테스트를 위한 F.I.R.S.T 규칙


Fast : 코드를 쉽게 고친 후 여러 번 돌릴 수 있게 테스트는 빨리 돌아야 한다.


Independent : 테스트가 서로에게 의존하면 실패의 원인을 찾기 어려워지기 때문에 각 테스트는 독립적이어야 하고 어떤 순서로 실행해도 괜찮아야 한다.


Repeatable : 테스트가 돌아가지 않는 이유를 환경으로 돌리지 않게 하기 위해서 테스트는 어떤 환경에서도 반복할 수 있어야 한다.


Self-Validating : 테스트는 스스로 성공과 실패를 가늠하여 부울값으로 결과를 내야 하지 프로그래머가 수작업으로 로그를 읽고 비교하게 만들어서는 안 된다.


Timely : 단위 테스트는 적시에, 테스트하려는 실제 코드를 구현하기 직전에 구현한다.







테스트 코드는 실제 코드만큼이나 프로젝트 건강에 중요하므로 지속적으로 깨끗하게 관리해야 한다.


테스트 코드는 개발자들만 보는 코드니까 조금 편한 마음으로 대충 작성해도 될 것이라고 은연 중에 가지고 있던 생각을 이번 기회에 바로 잡게 되었다. TDD를 공부하며 테스트 코드의 중요성과 테스트를 먼저 작성하는 것의 위력을 깨닫았기에 더욱 더 와닿았다.

'STUDY > Books' 카테고리의 다른 글

[Clean Code] 11장 시스템  (0) 2021.06.04
[Clean Code] 10장 클래스  (0) 2021.05.30
[Clean Code] 8장 경계  (0) 2021.05.24
[Clean Code] 7장 오류 처리  (0) 2021.05.23
[Clean Code] 6장 객체와 자료 구조  (0) 2021.05.21