JUnit5 적용 방법

JUnit5 빌드 환경 만들기, Spring Boot에서의 JUnit5 적용 환경

빌드 환경

Gradle 환경으로 아래와 같이 빌드 파일(build.gradle)이 필요하다.
build.gradle

plugins {
    id 'java'
}

group 'com.devkuma'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

test {
    useJUnitPlatform()
}
  • 의존성으로 org.junit.jupiter:junit-jupiter-api가 필요하다.

IDE로 프로젝트르 생성하게 되면 아래와 같은 디렉토리 구조가 된다.

.
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── devkuma
    │   │           └── Main.java
    │   └── resources
    └── test
        ├── java
        └── resources

테스트 코드 작성

/src/test/java/com/devkuma/junit5/JUnit5Test.java

package com.devkuma.junit5;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

class JUnit5Test {
    @Test
    void success() {
        Assertions.assertEquals(3, 3);
    }

    @Test
    void fail() {
        Assertions.assertEquals(3, 5);
    }

    static class StaticTest {
        @Test
        void success() {
            Assertions.assertEquals(3, 3);
        }

        @Test
        void fail() {
            Assertions.assertEquals(3, 5);
        }
    }

    class InnerTest {
        @Test
        void success() {
            Assertions.assertEquals(3, 3);
        }

        @Test
        void fail() {
            Assertions.assertEquals(3, 5);
        }
    }
}

Spring Boot에서의 적용 방법

Spring Boot 2.2 이후로 JUnit5를 기본 제공하고 있다. JUnit5를 쓰면 따로 설정 없이 starter-test에 포함된다.

Spring boot 2.2.x 이상

testImplementation("org.springframework.boot:spring-boot-starter-test")
 
test {
    useJUnitPlatform()
}

Spring boot 2.2.x 이전

testImplementation("org.springframework.boot:spring-boot-starter-test") {
     exclude module : 'junit' 
}

testImplementation("org.junit.jupiter:junit-jupiter-api")
testCompile("org.junit.jupiter:junit-jupiter-params")
testRuntime("org.junit.jupiter:junit-jupiter-engine")

test {
     useJUnitPlatform() 
}


최종 수정 : 2022-12-16