📌 실패할 게 뻔해 보여도 테스트는 실행하자.
하나의 테스트가 충분히 빨라서 자주 실행할 수 있어야 한다.
테스트는 작은 스케일로 하는게 좋다.
📌 각각의 테스트는 다른 테스트와 완전히 독립적이어야 한다.
→ 테스트가 실행 순서에 독립적이게 된다.
각 테스트를 실행하기 위한 환경을 쉽고 빠르게 셋팅할 수 있게 해야 한다.
테스트를 격리하기 위해서는 시스템이 응집도는 높고 결합도는 낮은 객체의 모음으로 구성되도록 한다.
테스트하기 전에 모든 테스트 목록을 적어보세요.
<aside> 💡
그래서 저는 앞으로 몇 시간 동안 해야 할 일들을 종이 쪽지에 적는 습관을 들였습니다. 좀 더 장기적인 주간/월간 목록은 벽에 따로 붙여두었습니다.
이렇게 다 적고 나면 "뭔가를 빠뜨릴 걱정은 안 해도 되겠다"는 확신이 들었습니다.
새로운 항목이 생기면 의식적으로 판단해서 그것이
📌 TDD에서는 앞으로 작성할 테스트들을 목록에 적습니다.
그렇게 해봤지만 잘 안 되더군요. 이유는 다음과 같습니다: