올해 목표 중 하나가 개발관련 책같은거도 보면서 지식쌓기..? 알야아 할 것들이 많다ㅜㅜㅜㅜㅜ
내 첫 책은 자바와 Junit을 활용한 실용주위 단위테스트라는 책이다.
총 14챕터로 이뤄져있으니 당연 내 포스팅도 14개가 올라갈 예정이다!

1장. 첫 번째 JUnit 테스트 만들기.
테스트코드 작성해보면서 할거지만 일단 책에 나와있는 깃허브 주소에서 클론받았다.
마이 맥북에서 인텔리제이 설치해서 해볼라했는데 일단 전자정부프레임워크 3.9버전에서 해보는거로!
책에 나와있든 이클립스든 전자정부든 IDE는 각자 편한데로 해보면 될 듯 하다.
ScoreCollection이라는 작은 클래스 테스트.
이 클래스는 Scoreable 객체의 컬렉션 평균을 반환하는 것으로 점수를 가진다.
테스트하려는 코드는 아래와 같다.

여기서 @FunctionalInterface란 자바8에서 추가된 annotation으로
추상 메소드가 단 하나뿐인며 해당 인터페이스가 함수형 인터페이스 조건에 맞는지 검사해준다고 한다.
다음은 ScoreCollection 클래스이다.
add() 메소드는 Scoreable 인스턴스를 인자로 받고 Scoreable 객체는 int형의 score 값을 반환한다.

이제 JUnit 테스트 클래스를 생성해보자!
ScoreCollection.java 항목을 선택하고 new > JUnit Test Case를 선택해준다.
Junit4 버전인지 확인하고 finish를 해주면 아래와 같은 파일이 자동생성된다.

코드설명은 fail 정적 메소드는 org.junit.Assert 클래스에 있고 @Test annotation은 org.junit 패키지에 있다.
테스트 클래스 명은 ScoreCollectionTest인데 대부분 타킷 클래스,
즉 우리가 테스팅 할 대상 클래스 이름 뒤에 Test를 붙여서 이름을 만드는 표준 방법을 채택한다고 한다.
JUnit은 @Test annotation이 붙은 메서드를 테스트로 실행하고 테스트 메서드 이름은 기본적으로 test이다.
이클립스의 경우 테스트 기본 몸체에 의도적으로 실패 상황을 추가하고 테스트 실행 시 fail()메소드로 테스트가 실패하는데,
실패 문은 나중에는 진짜 테스트로 교체해서 하면 된다고 한다.
이제 ScoreCollectionTest에서 Run As > JUnit Test 메뉴를 선택한다.
그럼 아래와 같은 테스트 실행 결과가 나오는 것을 볼 수 있다.

적색 막대로 표시가 되면서 Failures: 1 즉 테스트 한 개가 실패했다고 표시가 된다.
왼쪽 오른쪽 나눠서 보면 왼쪽은 테스트 클래스이 계층적인 뷰와 안에 포함된 메서드를 보여주고,
오른쪽은 스택 트레이스를 표시한다. java.lang.AssertionError가 났다고 알려주는 것을 볼 수 있다.
우리의 할 일은 적색 막대를 고치는것.. 코드 혹은 테스트 코드를 고쳐서 다시 테스트를 하고..그르탸...
여기에서는 fail 메서드 호츨을 제거하면 된다.

짜아안 녹색 막대!!! Failures: 0!!!!👏👏
여기서 끝이 아니다......하하핳........

아무것도 하지 않는 테스트를 실행했다면 이제 ScoreCollection 클래스에 대한 테스트 코드를 작성할 차례이다.
예제 코드처럼 똑같이 테스트함수 만들어주고 실행시켜보자.

테스트에서 어떤 것을 하기 위해서는 먼저 테스트 상태를 설정하는 준비 단계의 일들을 해야 한다.
여기서는 add() 메서드를 호출하는 것으로 준비할 수 있다.
준비가 끝났다면 실행을 시킨다.
여기서는 arithmeticMean 메서드를 실행해서 정수 변수에 실행 결과를 넣는다.
마지막으로 기대하는 결과를 단언한다.
assertThat() 메서드를 사용하는데 이 메서드는 실제 결과와 matcher객체를 인자로 받는다.
equalTo()는 실제 값과 기대되는 값인 6이랑 비교한다. 결과가 참이면 테스트 통과 아니면 테스트는 실패.
아! 여기서 equalTo() 를 사용하기 위해 org.hamcrest.CoreMatchers 클래스를 import시켜줘야 한다.
테스트를 실행해보면 녹색 막대가 나오면 코드 상 문제는 없는것. 6을 14나 다른 숫자로 바꾸면 적색 막대..테스트 실패가 나온다.
이러케 첫 JUnit 설정이랑 테스트 코드 작성해보기는 여기서 끝.
'BookReview' 카테고리의 다른 글
DOIT! 반응형 웹 만들기_부록 (0) | 2022.03.10 |
---|---|
DOIT! 반응형 웹 만들기_셋째마당 (0) | 2022.03.10 |
DOIT! 반응형 웹 만들기_둘째마당 (0) | 2022.03.08 |
DOIT! 반응형 웹 만들기_첫째마당 (0) | 2022.03.08 |
자바와 JUnit을 활용한 단위테스트_02 (2) | 2022.02.10 |