2. JUnit 진짜로 써 보기
2021-08-21 00:00:00
# JUnit
2.1 테스트 대상 이해: Profile 클래스
- 구직 웹 사이트 예제
- 구인자와 구직자는 둘 다 다수의 객관식 혹은 yes-no 질문에 대한 대답을 하는 프로파일을 생성한다.
- 첫 번째 예시 코드를 보고 어떤 애플리케이션을 개발하려고 하는지 파악해보기
2.2 어떤 테스트를 작성할 수 있는지 결정
- 테스트 코드를 작성하려고 하면 정말 많은 테스트를 만들 수 있음
- 충분히 테스트하기 위한 테스트 코드를 얼마나 작성해야 할까?
- 새로 작성한 코드에 테스트 코드를 작성할 때는 가장 신경 쓰는 부분이 어디인지 알고 있어야 한다.
2.3 단일 경로 커버
- matches() 메서드 안에 있는 코드를 분석해보면 유용한 Criteria 객체를 어떻게 만들어야 할지 가늠할 수 있다.
- 겉보기에는 의도한대로 만든 것 같은 테스트 완성
2.4 두 번째 테스트 만들기
- 각 단위 테스트는 고유 맥락을 갖는다.
- JUnit은 결정된 순서로 테스트를 실행하지 않으며, 모든 테스트는 다른 테스트 결과에 영향을 받지 않는다.
- 2.3과 유사한 테스트를 작성해보면서 공통적인 부분이 보인다.
2.5 @Before 메서드로 테스트 초기화
- 공통적인 초기화 코드가 있다면 @Before 메서드로 이동시켜보자
- 여러 테스트를 실행 시 작동 순서
- JUnit은 새로운 ProfileTest 인스턴스를 생성
- @Before 메서드를 호출하여 profile, question, criteria 변수를 적절한 인스턴스로 초기화
- 테스트 메서드를 실행하고 테스트가 통과 혹은 실패했는지 표기
- 새로운 인스턴스에 대해 @Before 메서드를 호출하여 필드를 초기화 (테스트 메서드마다 반복하여 초기화 한다.)
- 다른 테스트 메서드를 호출
2.6 ~ 2.7 결론
- 아직 테스트를 위한 경로가 더 있을 것이다.
- 단위 테스트를 작성하는 것은 훈련이 필요하다.
- 단지 assert 문을 넣는다고 되는 게 아니다.