테스트 코드 은근 재미있는데?
in Diary
개발일기
최근 토스 첫 컨퍼런스가 열린다 하여 이것저것 보다가 가장 감명깊었던 세션이 이거였다.
테스트 커버리지 100%… 광기라는 생각도 들었지만 정말 대단하다고 생각했다.
그러면서 존경심이 피어올랐다. 저걸 진짜 해보고 발표하는 사람이 있다니…👍
JUnit5를 공부하면서 StackOverflow
에서 가장 많이 본 내용 중 하나가 테스트 커버리지에 너무 집착하지 말라는 글이었기 때문이다.
예를들자면 스프링 부트의 메인 메소드가 가장 대표적이다.
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
이 코드의 테스트 코드를 작성하지 않으면 테스트 커버리지가 떨어진다.
이 코드의 테스트 코드를 작성한다면 테스트 커버리지는 상승하겠지만, 테스트 시간이 매우 길어진다.
class ApplicationTest {
@Test
@DisplayName("스프링부트_메인메소드")
@Disabled(value = "테스트_시간이_너무_오래_걸려_비활성화_함")
public void main() {
Application.main(new String[] {});
}
}
테스트 시간이 무려 4.167
초나 증가해버렸다.
테스트에서 이 4초는 무척이나 큰 시간이다.
원래 나는 테스트 커버리지를 따지면서 테스트를 작성하진 않았었다.
핵심 비즈니스 로직에만 작성한다는 마인드를 갖고 있었기 때문이다.
아무튼 저 세션을 보고 본격적으로 커버리지를 따져가면서 테스트 코드를 짜다보니 긍정적인 현상이 하나 있었다.
바로 성취감.
커버리지가 상승하는 것을 시각화하여 보고 있자니 상당한 성취감이 따라오더라.
물론 앞으로도 커버리지 100%에 집착하지는 않을 것이다.
그래도 커버리지를 시각화해서 보는것은 내게 매우 긍정적인 피드백으로 작용하므로
앞으로 커버리지를 신경쓰긴 해야겠다.