티스토리 뷰
2장. 테스트
개요 : 테스트란 무엇이며, 그 가치와 장점, 활용 전략, 스프링과의 관계를 및 대표적은 테스트 프로그램을 알아보자
1-1. 테스트란 ? 내가 예상하고 의도했던 대로 프로그램이 정확이 동작하는지 확신할 수 있게 해주는 작업이다.
1-2-1. 웹을통한 테스트 방법의 문제점 : DAO를 테스트 하기 위해서 컨트롤러, 서비스 클래스, JSP 뷰등 모든 기능들을 만들고 나서야 테스트가 가능(에러를 찾기가 어려워 효율적이지 못하다.)
1-2-2. 이러한 문제점을 보완하기 위해 가능하면 작은 단위로 쪼개서 집중하여 테스트를 해야한다.(단위테스트)
1-2-3. 많은 테스트 방법이 있겠지만 보다 간단하고 정확한 테스트를 위해 자동으로 수행할수있는 코드로 만드는게 중요하다.
1-2-4. 단위 테스트를 지속적으로 수행하면서 걔속 코드를 개선해 나갈수 있다.
2-1. 테스트 검증의 자동화 : 빠르게 실행 가능하도록 하며, 테스트 검증 자동화 코드를 입력하여 테스트를 정확하게 할 수 있도록 테스트 프로그램을 만들어야 함.
2-2. 좀더 효율적인 테스트를 위해 테스팅 프레임워크 JUnit을 이용하여 테스트 할수있다.
3-1. JUNIT을 이용하여 테스트를 실행
3-2. 테스트 결과의 일관성을 유지하기 위해 테스트를 위한 기능들을 추가
3-3. 좀더 꼼꼼한 테스트를 위하여 기능을 보완
3-4. 테스트 주도 개발의 중요성
4-1. DI를 통한 테스트 방법 : 테스트 코드에 의한 DI/테스트를 위한 별도의 DI설정/컨테이너 없는 DI 테스트
4-2. 위의 세가지 방법 모두 장단점이 있어 상황에 맞는 테스트가 필요. 하지만 항상 컨테이너 없이 테스트할 수 있는 방법을 지향해야함.