TDD는 단위 테스트를 먼저 작성하는 것을 요구한다. 세 가지 법칙은 다음과 같다:
테스트 코드는 실제 코드와 동일한 품질 기준을 적용해야 한다. 지저분한 테스트 코드는 유지보수가 어렵고, 실제 코드에도 악영향을 미친다.
깨끗한 테스트 코드는 변경을 두려워하지 않게 하며, 코드의 유연성과 유지보수성을 보장한다. 테스트 케이스가 없다면 모든 변경이 잠재적인 버그가 될 수 있다.
깨끗한 테스트 코드를 작성하려면 가독성이 가장 중요하다. 명료성, 단순성, 풍부한 표현력이 필요하다. 테스트 코드는 최소의 표현으로 많은 것을 나타내야 한다.
테스트 코드를 도메인에 특화된 언어로 구현하면 가독성이 높아지고, 유지보수가 용이해진다. 이는 잡다한 코드를 리팩터링하여 발전한 API를 사용함으로써 가능하다.
테스트 코드와 실제 코드에 적용되는 표준은 다르다. 테스트 코드는 단순하고 간결해야 하지만, 효율적일 필요는 없다. 테스트 환경과 실제 환경의 요구사항이 다르기 때문이다.
JUnit으로 테스트 코드를 작성할 때, 함수마다 하나의 assert 문만 사용하는 것이 이해하기 쉽고 빠르다. 다만, 상황에 따라 여러 개의 assert 문을 사용해야 할 때도 있다.
깨끗한 테스트 코드를 작성하려면 F.I.R.S.T 규칙을 따라야 한다. 이 규칙들은 테스트 코드의 품질을 유지하기 위한 기본 원칙이다.