테스트 커버리지는 코드의 어느 부분이 테스트에 의해 실행되었는지를 측정하는 지표다.
npx jest --coverage
명령어를 실행하면 주로 아래와 같은 요소들을 측정하는데
------------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
------------------|---------|----------|---------|---------|-------------------
Statement coverage
Branch coverage
Function coverage
Line coverage
각 코드 라인이 얼마나 테스트되었는지
테스트 커버리지가 100%라는 것은 모든 코드가 테스트에 의해 최소 한 번은 실행되었음을 의미한다.
하지만 테스트 커버리지가 높다고 해서 그것이 무조건적으로 좋은 것은 아니다. 테스트 커버리지는 테스트가 얼마나 완벽하게 수행되었는지에 대한 정보를 제공하지 않는다.
테스트 커버리지가 높더라도 각 테스트의 질이 떨어지면, 실제로는 중요한 버그를 발견하지 못할 수 있으므로 주의하자.
또한, 높은 커버리지를 갖기 위해 필요 이상으로 많은 시간과 노력을 투자하는 것은 효율적이지 않을 수 있고, CI 과정에 테스트가 있다면 기존의 로직를 변경하고 테스트 코드를 변경하지 않았을 때 어려움을 겪을 수 있으므로 주의하자.