그중에서도 좋은 단위 테스트는 다음 특징이 있다.
• 빠르게 실행되어야 한다.
• 테스트 환경을 일관되게 유지하고, 테스트 결과가 항상 예측 가능해야 한다(3장에서 자세히 다룰 예정이다).
• 다른 테스트와 완전히 독립적으로 실행되어야 한다.
• 시스템 파일, 네트워크, 데이터베이스가 없어도 메모리 내에서 실행되어야 한다.
• 가능한 한 동기적인 흐름으로 실행되어야 한다(가능하면 병렬 스레드를 사용하지 않아야 한다).
모든 테스트가 좋은 단위 테스트의 특성을 전부 만족하는 것은 사실 불가능에 가깝다. 그렇기에 항상 모든 조건을 만족할 필요는 없다. 단위 테스트 조건을 만족하기 까다로운 테스트는 적당한 리팩터링을 거쳐 보다 많은 조건을 충족하도록 만들 수도 있지만, 통합 테스트로 만드는 것도 하나의 방법이다(1.8절에서 다룬다).