테스트 코드 은근 재미있는데?

테스트 코드 은근 재미있는데?

개발일기

 

 

최근 토스 첫 컨퍼런스가 열린다 하여 이것저것 보다가 가장 감명깊었던 세션이 이거였다.

테스트 커버리지 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%에 집착하지는 않을 것이다.

그래도 커버리지를 시각화해서 보는것은 내게 매우 긍정적인 피드백으로 작용하므로

앞으로 커버리지를 신경쓰긴 해야겠다.

 


© 2022. All rights reserved.