이 글은 책을 읽은 후 책 본문을 인용하거나 글쓴이의 생각을 가미하여 작성 한 글입니다. 따라서 책의 대한 내용을 올바르게 이해하는 것은, 직접 책을 읽고 이해하는 것이 가장 베스트입니다.
JUnit의 필요성
개발자가 개발을 하다보면 모든 코드는 테스트를 하게 되어있다. 어떠한 컴포넌트가 실제 구동환경에서도 제대로 동작하는지는 충분한 테스트를 거치지 않으면 결국 증명할 방법이 없기 때문이다. 보통 테스트를 하면 어떻게 하는지 생각해보면, 직접 코드를 실행하고 컴파일 레벨에서 에러가 발생하지 않는다면 테스트 케이스를 통해 직접 하나 하나 액션을 취하면서 동작이 잘 하는지 확인을 하고 에러가 발생한다면 프로그램을 멈춘 후 에러가 발생한 코드를 찾아가 고쳐가는 방식을 한다. 자바의 환경에서라면 익셉션을 통해 에러가 유발 될 부분에 대해 프로그램이 멈추지 않도록 예외처리를 할 것이지만 결국 고쳐야 하는건 매한가지다. 이러한 테스트를 하다보면 결국 테스트 케이스 기반의 데이터 등록, 에러확인, 수정을 반복적으로 할 것이다. 데이터의 이동을 하나하나 확인하면서 검증하는 개발자는 이 행위를 좋아하겠지만 검증 과정에 있어 시간이 개발하는만큼 들 수 있으므로 좋아하지 않는 개발자도 분명히 있다. JUint은 이 반복적인 테스트 행위를 간편하게 행하도록 해주는 테스트 프레임워크 이다. 이 JUnit은 앞서 얘기한 일련의 테스트가 자동화되어 소프트웨어 개발 프로세스에 필수요소로 들어가면 좋겠다 생각한 '에릭 감마'와 '켄트 백' 두 개발자가 만든 SUnit이 시발점이다.
JUnit의 설계 목표
JUnit의 설계 목표는 다음과 같은 3가지이다.
- 유용한 테스트를 작성하는 데 보탬이 되어야 한다.
- 시간이 지나도 가치가 변치 않는 테스트를 작성하는 데 보탬이 되어야 한다.
- 코드 재사용을 통해 테스트 작성 비용을 낮추는 데 보탬이 되어야 한다.
단위테스트의 정의
단위테스트는 명확한 작업 단위의 동작을 검사한다. 명확한 작업 단위는 일반적으로 하나의 메서드를 간주한다. 통합테스트나 인수테스트는 다양한 컴포넌트 또는 외부환경 사이의 상호작용을 검증한다. 즉 단위테스트는 어떤 다른 작업에도 직접적으로 영향을 받지 않는 작은 단위의 테스트를 일컫는다.
단위테스트의 규칙
- 단위 테스트는 다른 모든 단위 테스트들과 독립적으로 실행되어야 한다.
- 프레임워크는 테스트 각각의 오류를 식별하고 보고해야 한다.
- 어떤 테스트를 실행할지 선택하기 쉬워야 한다.
'책 뿌시기(읽고난 후 생각정리) > JUnit in Action' 카테고리의 다른 글
3장 JUnit 마스터하기 (0) | 2023.12.19 |
---|---|
2장 JUnit 핵심 (0) | 2023.12.14 |