유닛테스트 프레임워크 가 있는데 언어별 가장 많이 사용되는 UnitTest 프레임워크는 다음과 같다.
- java -> JUnit
- C++ -> google test
- Python -> pytest
본 글에서는 Java에서 JUnit을 사용하여 Unit Test 환경을 구축해보고자 한다.
만약 환경 설정 없이 TDD를 해보고 싶으면 아래 글 참조
2022.12.14 - [개발] - 개발 환경 없이 TDD(test driven development) 연습 해보기
Unit Test를 위한 환경 세팅 : IntelliJ에서 maven으로 JUnit을 설치한다.
* IDE를 IntelliJ를 쓰는 이유는 eclipse도 상관없긴 하지만 eclipse는 리팩터 기능이 별로 없다. (추가로 plug in 설치하고 번거롭다.) 그래서 refactor 기능이 많은 IntelliJ로 환경 세팅하고자 한다.
IntelliJ 설치
아래 사이트에서 Community Edition으로 다운로드하고 설치하면 된다.
https://www.jetbrains.com/idea/download/#section=windows
Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains
Download the latest version of IntelliJ IDEA for Windows, macOS or Linux.
www.jetbrains.com

TIP : 요즘 IDE들이 keymap을 제공하고 있어서 IDE 가 변경되어도 익숙한 KeyMap으로 사용한다.
현업에서는 개발환경의 차이에서 오는 변수를 줄이기 위해 보통 모든 환경을 동일하게 세팅하기에 별도의 IDE를 사용하고 있진 않지만 IDE 선택 자유도가 있는 환경이라면 주력 IDE를 선택한 다음 keymap을 교체해서 사용하는 것이 정신건강에 좋다.
빌드시스템
IntelliJ에는 maven, gradle 같은 전용 빌드시스템과 그냥 IntelliJ를 선택할 수 있다.
빌드시스템은 왜 필요한가?
빌드시스템이 없다면 IDE에 맞는 '빌드 환경 세팅'을 서버에 올리면 다른 개발자는 동일 IDE를 써야만 빌드를 할 수 있다. 그래서 이런 문제점을 보완한 것이 빌드시스템 maven과 gradle이다. 빌드 환경세팅을 외부로 떼어내어 IDE와 상관없이 빌드환경을 세팅하기에 IDE에 독립적으로 환경을 구축할 수 있다.

Maven은 Library 설치 시 의존(Dependence) lib가 있다면 같이 설치됨
A lib를 가져다 썼는데
A lib는 B lib를 가져다 쓰고 있었고,
B lib는 C lib를 가져다 쓰고 있었고,
....
모든 lib를 갖추고 있어야 A lib를 쓸 수 있기에 모든 lib가 필요해지는데 자동으로 설치해 준다고 하니 너무 고맙다.
JUnit 설치
그럼 이제 이 고마운 걸로 JUnit을 설치해 보자.
google에서 Mvn repository 혹은 maven repository를 검색하면 찾을 수 있다.

https://mvnrepository.com/ <- 혹은 여기로
JUnit을 검색해보면 여러 개가 나오는데 여기서는 아래 2번 JUnit를 선택하면 된다.

맨 위에 것을 선택해도 되는데 맨 위에 것은 JUnit 5이고 두 번째 것은 JUnit 4이다. 오른쪽에 Usages를 보면 아직은 압도적으로 JUnit 4를 많이 사용하고 있기에 이것을 선택한다.(JUnit 5를 선택해도 무방하다.)





축하합니다. 이제 Unit Test 코드를 작성할 준비가 되었다.
'개발 > 환경구축' 카테고리의 다른 글
mock object(모의 객체) 파일 자동 생성 툴 (0) | 2023.09.12 |
---|---|
코드 커버리지 설치 및 사용 방법(VS 2017+OpenCppCoverage) (0) | 2023.08.29 |
TDD : Unit Test 환경 설정(Visual Studio 2017 + gtest) (2) | 2023.03.22 |
[C/C++]VSCode + MinGW + makefile 환경 설정 하기 (2) | 2022.12.11 |
[Raspberry PI] 커널 모듈 빌드를 위한 환경 셋팅 (2) | 2022.11.27 |