일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 트랜잭션
- 액세스토큰
- AWS
- 리프레시토큰
- 토이프로젝트
- springsecurity
- 스프링부트
- 도커
- CI/CD
- oauth2
- 소셜로그인
- 파이썬
- 데이터베이스
- 프로그래머스
- 스프링시큐리티
- JIRA
- springdataredis
- 티스토리챌린지
- docker
- Spring
- java
- 스프링
- githubactions
- 오블완
- yaml-resource-bundle
- 국제화
- 재갱신
- 메시지
- springsecurityoauth2client
- 백준
- Today
- Total
땃쥐네
[Test] gradle JUnit5, assertJ 라이브러리 등록 본문
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의 인자가 서로 동등하면 테스트가 성공한다. 동등하지 않다면 실패하게 된다.
인자를 적절히 바꿔보면서 테스트의 실패여부도 확인하면 좋을 것 같다