테스트 코드를 작성하다 보면 어떤 테스트들이 부족한지 확인하고 싶을 때가 있다.
어떻게 확인할 수 있을까??
의외로 방법은 간단하다.
Project > test > java에서 우클릭한 후 > More Run/Debug > Run ... with Coverage를 실행하면 된다.
실행한 결과는 아래와 같다.
몇 개의 Method가 테스트되고 있는지부터 어느 라인이 테스트 커버가 되고 있는지를 확인할 수 있다.
이렇게 확인하면서 부족한 테스트를 찾아가면서 보완할 수 있다.
여기서 꿀팁은 한 가지 옵션을 추가하면 더 꼼꼼한 테스트 코드를 작성할 수 있다.
그것은 바로바로!! 브랜치 커버리지를 확인하는 것이다.
브랜치 커버리지란 만약 true/false를 반환하는 조건문이 있다면
이 두 개를 다 테스트해야만 브랜치 커버리지가 만족한다고 볼 수 있다.
어떻게 추가할 수 있을까?
똑같이 More Run/Debug로 이동한 후 Modify Run Configuration을 누르면 위와 같이 화면이 나타난다.
거기서 Modify options를 누르면 아래와 같이 Code Coverage에 Use tracing이 보이게 된다.
IntelliJ 버전이 바뀌면서 아래와 같이 Enable branch coverage and test tracking으로 변경되었다.
해당 부분을 체크하고 OK를 누르면 준비는 끝이다.
다시 한번 테스트 코드 커버리지를 측정하면 아래와 같이 Branch 항목이 추가되었을 것이다.
그리고 클래스에 들어가 보면 아래와 같이 테스트는 되고 있지만
false인 경우에만 테스트되고 있는 부분들을 확인할 수 있다.
이처럼 Branch를 활용한다면 내가 미처 신경 쓰지 못했던 if문에 대한 테스트가 누락되고 있는지 확인할 수 있다.
꼼꼼한 테스트 작성에 도움이 되길 바라며 끄읏~