JUnit 이란?
자바 개발자라면 반드시 알고있어야 하는 테스팅 프레임워크 중 하나입니다.
아주 심플하고 직관적인
Kent Beck, Erich Gamma, David Saff, Kris Vasudevan 이 만든 자바 테스팅 프레임워크로
XUnit이라는 이름의 유닛 테스트 프레임워크 중 하나입니다. (자바는 JUnit, C 언어는 CUnit)
Intellij를 만든 JetBrain 사에서 조사한 결과 단위 테스트를 하는 개발자는 75%고 그 중 JUnit을 사용하는 개발자는 2019년엔 93%, 2020년엔 83% 라고 하네요. 1년 사이에 10%나 줄었네요. (어떤 걸로 이동했나 궁금...)
2019년 통계 (https://www.jetbrains.com/lp/devecosystem-2019/java/)
2020년 통계 (https://www.jetbrains.com/lp/devecosystem-2020/java/)
JUnit 외에도 Mockito, Spock 등 다양한 테스팅 프레임워크가 존재합니다. (나머진 다음에 정리를...)
왜 사용할까?
혹시 스프링 부트로 개발하면서 기능이 개발 및 변경될 때 마다 서버 구동 -> localhost:8080/xxx 접속 후에 일일이 확인하고 계신가요?
운영 중인 서버에 수정한 기능 올리면서 혹시나 장애날까봐 맘 졸이신 적 있으신가요?
아니면 레거시 코드들이 너무 엮여있어서 내가 작성한 코드 때문에 장애 생길까봐 걱정하신 적 있으신가요?
테스팅 프레임워크를 사용해서 테스트 코드를 작성하는 이유는 코드의 신뢰성을 높히고 빠르고 쉽게 구현, 변경에 대해 테스트하기 위함입니다. 그리고 위와 같은 불필요한 작업과 불안한 마음을 없앨 수 있습니다.
(신뢰성을 높힌다는 건 장애 발생 확률을 줄인다는 의미입니다.)
어떤 버전 사용해야 할까?
현업에선 JUnit 5가 2017년 2월에 나왔음에도 JUnit 4를 사용하고 있는 회사가 많습니다. JUnit 4는 레거시에서 사용하고 있어서 버전업 하는 거에 부담을 느끼거나 불편함이 없어 이유를 못 찾는 곳에서 사용하고, JUnit 5는 새로 시작하는 프로젝트나 개발에 관심있는 회사에서 사용하고 있는 거 같습니다.
라이브러리 사용 현황을 볼 수 있으면 좋겠는데 어디서 보는지 모르겠어서 구글 트렌드로 비교해봤습니다.
딱 봐도 JUnit 5가 더 많이 사용되고 있는 걸 볼 수 있습니다. JUnit 5를 사용합시다!!
다음 포스팅에선 JUnit 5 사용법에 대해 알아보겠습니다.
읽어주셔서 감사합니다.
참고
1. wiki (https://ko.wikipedia.org/wiki/JUnit)
2. jetBrain (https://www.jetbrains.com/lp/devecosystem-2019/java/, https://www.jetbrains.com/lp/devecosystem-2020/java/)
3. google Trend (https://trends.google.co.kr/trends/explore?q=junit4,junit5)
댓글