땃쥐네

[Test] gradle JUnit5, assertJ 라이브러리 등록 본문

Test

[Test] gradle JUnit5, assertJ 라이브러리 등록

ttasjwi 2022. 1. 5. 01:11

 

1. gradle로 프로젝트 생성

- 빌드툴을 사용해서 프로젝트를 생성한다.

- 빌드툴을 사용하는데는 여러가지 목적이 있는데 각종 라이브러리를 떙겨오기 편하도록 하기 위함.

- 빌드툴을 통해 실행환경에서 외부 라이브러리를 어디서 무엇을 끌어올지 지정해 줄 수 있고, 자동으로 끌어올 수 있을 것.

- 코드를 기반으로 라이브러리 의존성을 편리하게 관리할 수 있게 되고 github과 같은 원격 리포지토리를 통해 소스 파일을 clone 한 개발환경에서 별도의 외부 라이브러리를 끌어쓰지 않아도, 동일환경에서 실행할 수 있기 때문에 많이들 이를 사용하는 것 같다.


2. build.gradle 에서 assertJ 라이브러리 의존성 추가

 

testImplementation("org.assertj:assertj-core:3.22.0")
dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
    testImplementation("org.assertj:assertj-core:3.22.0")
}

기본적으로 gradle 프로젝트 생성시 junit 의존성이 추가되어 있는데

 

테스트 코드의 가독성 면에서 assertJ라는 라이브러리를 많이 사용한다.맨 밑의 test Implementation 부분, assertj 라이브러리 의존성을 따로 dependencies에 추가해주자.

 

assertj의 의존성을 추가 코드는 mavenrepository에서 assertj를 찾아다 gradle 의존성 추가 코드를 복사하여 넣었다.

 

참고로 Spring Boot에서는 기본적으로 asserJ 라이브러리가 포함되어 있다.


3. Load Gradle Changes

 

의존성을 새로 추가해줬으니 change를 반영한다.


4. 실제 테스트 코드 작성해보기

import static org.assertj.core.api.Assertions.assertThat;

gradle에서는 기본적으로 src/test/java 폴더를 test파일의 소스경로로 인식한다. 하위에서 테스트 클래스를 생성하고, 위 문장을 static import 하면 Assertions의 assertThat 메서드를 편리하게 사용할 수 있다.

import org.junit.jupiter.api.Test;
@Test
void AND테스트() {
    //when
    boolean result1 = LogicGate.and(true, true);
    boolean result2 = LogicGate.and(true, false);
    boolean result3 = LogicGate.and(false, true);
    boolean result4 = LogicGate.and(false, false);

    //then
    assertThat(result1).isEqualTo(true);
    assertThat(result2).isEqualTo(false);
    assertThat(result3).isEqualTo(false);
    assertThat(result4).isEqualTo(false);
}

실제로 테스트 코드를 하나 작성해봤다. @Test 어노테이션을 달면 그 메서드를 테스트 메서드로 인식하는데,

assertThat 메서드의 인자와 isEqaulTo의 인자가 서로 동등하면 테스트가 성공한다. 동등하지 않다면 실패하게 된다.

인자를 적절히 바꿔보면서 테스트의 실패여부도 확인하면 좋을 것 같다


 

Comments