
애자일과 TDD 덕택에 단위 테스트를 자동화하는 프로그래머들이 많아졌다.
세가지 규칙을 따르면 개발과 테스트가 대락 30초 주기로 묶인다.
방대한 테스트 코드는 심각한 관리 문제를 유발하기도 한다.
테스트 코드는 실제 코드 못지 않게 중요하다. 실제 코드 못지 않게 깨끗하게 짜야한다.
테스트는 유연성, 유지보수성, 재사용성을 제공한다.
테스트 코드를 깨끗하게 유지 하니 않으면 결국 잃어버린다. 그리고 테스트 케이스가 없으면 실제 코드를 유연하게 만드는 버팀목도 사라진다.
코드에 유연성 , 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위 테스트이다.
깨끗한 테스트 코드를 만들려면 세가지가 필요하다
가독성, 가독성, 가독성
가독성은 실제 코드보다 테스트 코드에 더더욱 중요하다.
도메인에 특화된 테스트 언어
테스트를 구현하는 당사자와 나중에 테스트를 읽어볼 독자를 도와주는 테스트언어
이중 표준
테스트 API 코드에 적용하는 표준은 실제 코드에 적용하는 표준과 확실히 다르다.
단순하고 간결하고 표현력이 풍부해야하지만 실제 코드만큼 효율적일 필요는 없다.
assert 문이 단 하나인 함수는 결론이 하나라서 코드를 이해하기 쉽고 빠르다.
테스트당 개념하나
테스트 함수마다 한 개념만 테스트하라는 규칙이 더 낫다
테스트 함수 하나에 개념하나만 테스트하라
깨끗한 테스트는 다섯가지 규칙을 따른다.
빠르게(FAST)
독립적으로(Independent)
반복가능하게 (Repeatable)
자가검증하는 (self-validating)
적시에 (timely)