아스키 아트(ASCII Art)
특정 테스트 케이스의 경우(특히 시간 관련) 테스트 메서드 내용만 봐서는 이해하기가 힘들다.(아무리 주석을 열심히 달아도…)
그래서 이런 경우 아스키 아트를 활용하면 리뷰어나 테스트 코드를 작성하는 작성자에게도 가독성을 크게 향상 시킬 수가 있다.
/*
* ┌────────────────────────────────────────────────────────────┐
* │ Timeline │
* │ │
* │ 1/20 (today) │
* │ 15:00 (Daily) 18:00 (Batch) 20:00 │
* │ ↓ ↓ ↓ │
* │ [Daily Start]────[★ middle End] [Daily End] │
* │ [================★] ... │
* │ Actual End (18:00) │
* │ │
* │ ★ Result: TRUE (middle End시각이 우선) │
* └────────────────────────────────────────────────────────────┘
*/
테스트 코드 내용을 보지 않아도 어떤 테스트를 할지 파악이 가능하다.
언제 넣어도 좋은 ASCII 아트 TOP 3
(1) 시간 흐름 (timeline)
20:00 ─────── 23:00 ─────── 04:00
전날 당일 다음날
(2) 상태 전이(state transition)
[REQUESTED] → [APPROVED] → [HAVING]
(3) 입력-출력 케이스 매트릭스
+---------------+-------------+------------+
| dailyStart | dailyEnd | expected |
+---------------+-------------+------------+
| 20:00 | 04:00 | 04시 종료 |