2019-11-21 작성

Java + Gradle 프로젝트에서 JUnit 테스트하기

지금부터 IntelliJ에서 Java + Gradle 프로젝트를 생성한 후 JUnit으로 테스트를 해볼 것이다. 

1. 프로젝트 생성

IntelliJ에서 메뉴 [File] - [New] - [Project]로 들어가면 'New Project' 창이 뜬다. Junit 라이브러리를 사용해서 테스트를 할 것이기 때문에, 직접 jar를 받아 추가하기보다는 Maven 또는 Gradle 빌드 도구를 이용해서 의존성을 쉽게 관리하는 것을 추천한다. 나는 Gradle을 이용할 것이다.

GroupId와 ArtifactId는 원하는 식별자를 입력하면 된다. 실제 프로젝트라면 룰에 맞춰야 한다. 식별자 네이밍에 대한 글을 참고하자. (https://johngrib.github.io/wiki/groupId-artifactId/)

기본 설정 그대로 넘어간다.

프로젝트명을 입력한다.

프로젝트가 생성되면 아래와 같은 프로젝트 구조가 보일 것이다. src/test/java 에서 테스트 코드를 작성하려고 한다. 테스트 코드 작성 후 main 코드 작성하는 순서로 진행할 것이다.

2. 테스트 코드 생성

src/test/java 에서 패키지 및 클래스를 만들자. 아래는 algorithm.basic 패키지의 StringParseToIntTest 클래스를 생성한 후 테스트할 코드를 적은 모습이다. 빨간색으로 표시된 코드는 아직 생성을 안 했거나 import를 안 하는 등 수정이 필요한 부분이다.

9번째 줄의 빨간색 코드에 커서를 갖다 대면 📍 빨간 전구가 뜨는데, 아직 main에 생성되지 않은 클래스를 사용하기 때문이다. 아래와 같이 해당 부분에서 [Alt+Enter]를 누르면 Create class를 이용해 클래스를 만들 수 있다.

클래스를 생성할 때, 클래스 생성 위치가 test로 잡히는데 이를 main으로 변경해야 한다.

이제 src/main/java 하위 디렉터리에 StringParseToInt 클래스가 생성되었다. 이런 식으로 테스트 코드 작성 → 테스트 코드에 맞춘 메인코드 생성 순으로 진행하면 된다. 클래스를 생성하니 StringParseToIntTest 클래스의 9번째 줄의 빨간 전구가 사라진 것을 확인해보자.

마찬가지로 테스트 코드를 비교하기 위한 assertThat 역시 빨간색으로 표시되는데, 이는 assertThat 관련 클래스가 아직 import 되지 않은 상태이기 때문이다. 따라서 해당 부분에서 [Alt+Enter]를 누르면 'Import static method...'가 뜬다. 그리고 'Assert.assertThat (org.junit)'을 선택하면 빨간 전구가 사라진다.

이런 식으로 Error를 하나씩 없애고 나면 [Ctrl+Shift+F10]을 눌러 테스트를 실행한다. 초록색의 체크 표시가 뜨면 테스트에 성공했다는 뜻이다.

별다른 내용은 없지만 두 클래스의 코드를 첨부합니다.

StringParseToInt.java
0.00MB
StringParseToIntTest.java
0.00MB