+테스트 환경에서 Slf4j 사용 세팅
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
+@SpringBootTest 없어도 동작한다.
: 종종 단위테스트 할 때에도 추가되어있던데 뭔지 모르겠다.
+지난 시간 실습 (기본 어노테이션, 생명주기, 반복 등)
패키지 가져와서 테스트 실습
테스트 예제 국룰, 계산기 클래스를 간단히 추가해줬다.
의존성이 없는 클래스인 계산기를 테스트해보는 단계.
셋업 메소드로 외부 패키지의 객체 생성하기
매 메소드 실행전 새로운 객체를 생성받게 된다.
궁금하니까 참조값도 같이 보려고 한다.
Assertions로 결과 예측해보기
+JUnit5부터 Assert가 아닌 Assertions의 정적메소드를 가져와야 한다.
2+3이 5가 맞는지. 4가 안나오는지 확인하는 테스트 코드.
추가로 나누기에 대한 테스트도 진행.
테스트결과
BeforeEach 확인
각 테스트 전에 실행이 됐고, 그 결과 Calculator의 객체가 다른 참조값을 가지고 있는 걸 확인할 수 있다.
DisplayName, 통과 확인
test1에는 따로 어노테이션 @DisplayName을 붙여줘서 이름이 수정된 것을 확인.
다른 테스트도 통과하여 체크표시.
Given - when - then
위에서 아주 간략히 작성된 코드들처럼 테스트코드의 기반이 되는 구조가 있다.
값을 세팅하고(계산기 객체 생성), 실행하고(메소드 실행), 결과를 판별(Assertions메소드)하는 과정을 거치는데 이를 각각
Given, When, Then으로 구분한다.
이제 의존성없는 외부 패키지에 대한 테스트를 마쳤으니,
Bean객체를 주입받고 서로의 의존성으로 겹쳐진 팀 과제에 적용시켜보자.
깨달은 것
하나씩 테스트코드를 기본에서부터 가지고 노는 과정이 필요했었다.
단순히 강의를 보고 이해하는 것보다 직접 가지고 놀때의 기초의 탄탄함을 다시 한번 느낀다.
이제 이전에 들었던 강의가 다시 새롭고, 이후에 느꼈던 어려움도 가늠이 간다.
이후 Mockito의 활용과 필요성부터 차근차근 뜯어보려 한다.
'TIL : Today I learned (or Week)' 카테고리의 다른 글
TIL 230828 : 테스트코드 3 - Mockito (의존성 있는 Bean객체가 넘나드는 패키지 테스트 실습) (1) | 2023.08.28 |
---|---|
WIL 230827 : 테스트 코드 정면돌파 (0) | 2023.08.28 |
TIL 230824 : 테스트 코드 1 - JUnit이란? 단위테스트 (0) | 2023.08.27 |
TIL 230823 : 테스트 코드 0 - 마음 다 잡고 준비하기. (0) | 2023.08.27 |
TIL 230822 : 코딩테스트 입문단계에서 습득한 내장 메소드들 정리 (0) | 2023.08.25 |