CHAP 08. 테스트 가능한 설계
테스트 주도 개발 시작하기 8장을 요약한 내용입니다.
테스트가 어려운 코드
하드 코딩된 경로
public class PaySync {
private PayInfoDao payInfoDao = new PayInfoDao();
public void sync() throws IOException {
Path path = Paths.get("/data/pay/cp0001.csv");
List<PayInfo> payInfos = Files.lines(path)
...
}
}의존 객체를 직접 생성
public class PaySync {
private PayInfoDao payInfoDao = new PayInfoDao();
...
}정적 메서드 사용
실행 시점에 따라 달라지는 결과
역할이 섞여 있는 코드
그외 테스트가 어려운 코드
테스트 가능한 설계
하드 코딩된 상수를 생성자나 메서드 파라미터로 받기
의존 대상을 주입 받기
테스트하고 싶은 코드를 분리하기
시간이나 임의 값 생성 기능 분리하기
외부 라이브러리는 직접 사용하지 말고 감싸서 사용하기
Last updated