본문 바로가기
IT 공부/자바와 웹 애플리케이션

[JUnit] - 아는 만큼만 정리....

by exdus3156 2024. 1. 3.

JUnit은 Java 진영에서 필수적으로 활용되는 테스트 코드다. 그래선지 IDE와 빌드툴에서 자동으로 사용할 수 있도록 설정되어 있어 특별히 JUnit을 독립적으로 사용하는 경우는 드문듯하다. 

처음에는 JUnit을 따로 독립적으로 활용해 그 원리를 파악해야 하나 싶었지만 그냥 관뒀다. 굳이 이렇게 테스트를 하지도 않을 뿐더러, 따라서 독립적으로 JUnit을 사용하는 것에 대해 공부하는 것이 시간 낭비로 여겨졌기 때문이었다.

그래서 솔직히 IDE 환경에서 벗어나 JUnit를 독립적으로 사용하는 방법에 대해서는 모르겠다. 앞으로도 IDE를 통한 JUnit 사용에는 익숙해지려고 노력하겠지만, 독립적인 JUnit 사용이 필요한 순간이 오지 않으면 굳이 원리를 공부할 생각은 없다. 너무 깊게 생각하지 말고 이제는 유연하고 기민하게 공부하기로 했으니까..!

다만 여기 포스팅에서는 JUnit 자체의 사용 환경에 대해 아는 만큼만이라도 정리해보려고 한다.


 

일단, JUnit도 결국은 프레임워크이기 때문에 어떤 런쳐(Launcher)를 통해 실행되어야 하는 코드이면서 테스트 코드를 데이터로 받아 사용되어야 한다.

JUnit에서 직접 사용 방법을 명시해놓았다. 특히 JUnit을 굳이 굳이 독립적으로 사용해야 한다면 콘솔 런처(Console Launcher)를 사용하면 된다.

그러나 JUnit의 공식 홈페이지의 문서는 이클립스와 인텔리제이가 직접 제공해주는 JUnit 서비스를 사용하거나, 빌드툴(maven, gradle)로 의존성 다운로드 및 빌드(특히 test 단계)를 사용해 JUnit을 사용하도록 권장한다. 

혹은 IDE와 빌드툴 둘다 사용해야 한다. 실제로 인텔리제이로 테스팅을 해보면 maven이나 gradle로 테스트 태스크를 수행하는 것을 볼 수 있다

IDE 자체의 JUnit을 사용해도 되지만, 그런 경우엔 IDE가 JUnit을 어떻게 지원하는지 파악할 필요는 있다. 공식 문서를 보면 이클립스나 인테리제이 등의 IDE가 직접 자신의 일부로서 JUnit 실행을 도와주기 시작한 것은 비교적 최근이다. (ex. 인텔리제이, 2016년 이후 버전이 JUnit 지원) 따라서 너무 옛날 IDE를 사용하는 경우에 JUnit을 IDE 환경에서 바로 실행하기 힘들 수도 있다.

 

gradle
maven

 

그레이들과 메이븐과 같은 빌드 툴로 테스트를 실행할 수도 있다. 사실 대부분은 테스트를 이렇게 빌드툴을 활용해 테스팅한다. 메이븐은 scope test 태그를 통해, 그레이들은 test를 위해 위와 같이 의존성을 명시하고, JUnit을 사용한다고 아래와 같은 설정을 기록해준다.