프로젝트를 진행하던 중 프론트팀의 속도가 늦어져서 백엔드끼리 무엇을 할까 확인해보았다.
매니저님이 성능 개선, 테스트 코드 작성 을 제시해주셨고 우리는 테스트 코드 작성을 하기로 정하였다. 그리고 단순히 테스트 코드를 작성하는 것이 아닌 JaCoCo 라이브러리를 사용하여 테스트 코드의 커버리지를 확인해보고자 하였다.
JaCoCo는 Java코드의 커버리지를 체크하는 라이브러리이다. 테스트 코드를 작성하고 테스트를 진행하면 테스트 코드가 작용하는 코드의 범위를 보여주는 html페이지를 생성하여 확인해볼 수 있다. 또한 커버하는 범위를 %로 나타낼 수 있어서 지정한 % 를 넘지 못하면 배포를 하지 못하게 설정하여 안정적으로 배포할 수 있다.
다음과 같이 간단한 테스트 코드를 작성하였다. 그리고 테스트를 돌린뒤
build/reports/html-report/index.html으로 들어사면 html파일을 확인할 수 있고 이를 브라우저를 이용하여 열 수 있다.
그럼 다음과 같이 해당 테스트 코드가 각 클래스를 커버하는 범위를 확인할 수 있고
상세 클래스로 들어가 확인해보면 해당 테스트 코드가 커버하는 코드를 확인할 수 있다. 방금 테스트 코드는 해당 사용자가 없을 때 발생하는 예외나 이미지가 없을 때 발생하는 예외, 이미지 업로드시 발생하는 예외에 대해 테스트를 진행하지 않기 때문에 해당 예외 부분들을 빨간색으로 되어 있는 것을 확인할 수 있고 정상 케이스의 코드들은 초록색으로 표시된것을 볼 수 있다.
또한 전체 프로젝트의 커버리지 %뿐 아니라 각 클래스의 커버리지 %도 확인할 수 있다.
대부분의 코드에 대해 작성한 테스트 코드들을 전체 실행시켜 html파일을 새로고침하면 다음과 같이 바뀐것을 볼 수 있다.
만약 지정한 %를 넘지 못할 시
다음과 같이 jacocoTestCoverageVerification FAILED와 함께 에러 메시지가 발생하는것을 볼 수 있다.
'백엔드(Back End) > Spring' 카테고리의 다른 글
[TIL]20230727 - Mockito (0) | 2023.07.28 |
---|---|
[TIL]20230726 - 테스트 코드 작성 (0) | 2023.07.28 |
[TIL]20230718 - Spring Boot 이미지 업로드 구현 (0) | 2023.07.18 |
[TIL]20230713 - RefreshToken (0) | 2023.07.14 |
[TIL]20230712 - 페이징 처리 (0) | 2023.07.12 |