테스트 코드 - ChoDragon9/posts GitHub Wiki

클린 테스트 코드를 만들려면? 세 가지가 필요하다. 가독성, 가독성, 가독성. 어쩌면 가독성은 실제 코드보다 테스트 코드에 더더욱 중요하다. 테스트 코드에서 가독성을 높이려면? 여느 코드와 마찬가지다. 명료성, 단순성, 풍부한 표현력이 필요하다. 테스트 코드는 최소의 표현으로 많은 것을 나타내야 한다.

given-when-then 이라는 관례를 사용하면 테스트 코드를 읽기가 쉬워진다. 하지만 불행하게도, 테스트를 분리하면 중복되는 코드가 많아진다. 그러므로 가장 좋은 규칙은 "개념 당 assert 문 수를 최소한 줄여라"와 "테스트 함수 하나는 개념 하나만 테스트하라"라고 하겠다.

F.I.R.S.T.

  • 빠르게 Fast: 테스트는 빨라야 한다.
  • 독립적으로 Independent: 각 테스트는 서로 의존하면 안 된다.
  • 반복 가능하게 Repeatable: 테스트는 어떤 환경에서도 반복이 가능해야 한다.
  • 자가 검증하는 Self-Validating: 테스트는 성공 아니면 실패다.
  • 적시에 Timely: 테스트는 적시에 작성해야 한다.