<aside> 👉 AssertJ는 많은 assertion(주장, 단언)들을 제공하는 Java 라이브러리다. 에러 메세지와 test code 가독성을 향상하는데 도움을 준다. 사용자가 선호하는 IDE 내에서 매우 사용하기 쉽게 설계됐다.
</aside>
//JUnit
assertEquals(actual, expected)
//AssertJ
assertThat(actual).isEqualTo(expected)
<aside>
👉 assertThat(actual=테스트 타켓=변수명).메소드1().메소드2().메소드3();
</aside>
//JUnit
@Test
void replaceJUnit() {
String actualJUnit = "abc".replace("b", "d");
assertEquals(actualJUnit, "adc");
}
assertEquals(actual, expected)
//AssertJ
@Test
void replace() {
String actual = "abc".replace("b", "d");
assertThat(actual).isEqualTo("adc");
}
AssertJ가 JUnit에 비해 확실히 가독성이 더 좋다! JUnit은 인자값의 순서를 어떻게 대입할지 헷갈릴 우려가 있다. AssertJ는 맨 앞에서부터 자연스럽게 읽어주기만 하면 된다.
@Test
void aFewEaxamplesOfAssertions(){
assertThat("I CAN DO THIS ALL DAY!") //주어진 문자열은
.isNotNull() //비어있지 않고 = .isNotEmpty
.contains("CAN") // "CAN"을 포함하고
.doesNotContain(",") // ","를 포함하지 않고
.startsWith("I") // "I"로 시작하고
.endWith("Y!") //"Y!"로 끝나며
.isEqualsTo("I CAN DO THIS ALL DAY!"); //"I CAN DO THIS ALL DAY!"와 일치한다.
}
<aside> 1️⃣ 프로젝트 환경 구축
IntelliJ IDEA 실행 > 왼쪽 메뉴에서 New Project 선택
[Build system] : 필자는 Gradle 선택 [> Advanced Settings] : > 토글 눌러서 숨겨진 Groupld, Artifactld 맞이하자!
Create 클릭

</aside>
<aside> 2️⃣ Class 생성
프로젝트가 생성되면 아래와 같은 폴더 구조를 갖게 된다.
src > test > java > package 생성(꼭! lowercase) > Class 생성

</aside>
<aside> 3️⃣ 아래 코드 작성해보기!
public class StringTest {
@Test
public void aFewEaxamplesOfAssertions(){
assertThat("I CAN DO THIS ALL DAY!")
.isNotNull()
.contains("CAN")
.doesNotContain(",")
.startsWith("I")
.endsWith("Y!")
.isEqualTo("I CAN DO THIS ALL DAY!");
}
}
</aside>
<aside> 4️⃣ Assrtions 클래스 입문 시 포인트☝️ : Get assertj-core library
assertj를 사용하기 위해서 먼저 외부 의존성(dependency)을 추가해야한다.(assertj-core library를 가져와야함) 🔗 assertj.github.io 참고 : https://assertj.github.io/doc/#get-assertj-core
초기 프로젝트 생성시 build tool에 적합한 assertj-core 의존성을 복사한다. (필자는 초기 프로젝트 생성 시 [Build system]으로 Gradle을 선택함(2.1️⃣-2))

복사한 코드를 build.gradle 파일 > dependencies{}에 붙여넣는다.
방법1 : within IDE

방법2 : macOS 기준 Finder > Application > IntelliJ IDEA > build.gradle 검색 > 프로젝트에 맞는 gradle 열기

</aside>
<aside> 4️⃣ Assrtions 클래스 입문 시 포인트✌️ : import
코드 입력시 Annotation(애노테이션)과 assertThat에 빨간글씨로 에러가 발생하고 있다면
우선 @Test Annotation부터 import해서 해결하자!
import class 클릭
import org.junit.jupiter.api.Test;import 된다.
assertThat도 위의 해결방법과 동일하게 해결해보자.
import static method 클릭 Assertions.assertThat(org.assertj.core.api) 클릭
import static org.assertj.core.api.Assertions.assertThat;import 된다.


</aside>
<aside> 5️⃣ Test 성공! 박수👏👏👏

</aside>