Given(Arrange - 준비) → When (Act)→ Then(Assert)
Given - 준비 과정 재사용
When - 의도적으로 실패한 후 코드 수정
Then - 마지막에
FIRST
FAST - 느린것에 대한 의존성 낮추기 (파일, 데이터베이스, 네트워크처럼 오래 걸리는 것들 의존성 낮추기 ⇒ mock, stub)
Isolated - 최소한의 유닛으로 검증하기 (독립적이고 집중적으로 유지)
Repeatable - 실행할 때마다 동일한 결과를 유지 (다른 테스트에 의존되는 경우 - 환경에 영향을 받지 않도록 작성해야 한다.)