1. AssertJ란?

<aside> 👉 AssertJ는 많은 assertion(주장, 단언)들을 제공하는 Java 라이브러리다. 에러 메세지와 test code 가독성을 향상하는데 도움을 준다. 사용자가 선호하는 IDE 내에서 매우 사용하기 쉽게 설계됐다.

</aside>

1.1 JUnit의 assertEquals와 AssertJ assertEquals의 비교 예시:

//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는 맨 앞에서부터 자연스럽게 읽어주기만 하면 된다.

1.2 a few examples of AssertJ assertions:

@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!"와 일치한다.
}

2. [intelliJ]에서 AssertJ 사용하기

<aside> 1️⃣ 프로젝트 환경 구축

  1. IntelliJ IDEA 실행 > 왼쪽 메뉴에서 New Project 선택

  2. [Build system] : 필자는 Gradle 선택 [> Advanced Settings] : > 토글 눌러서 숨겨진 Groupld, Artifactld 맞이하자!

  3. Create 클릭

    Screen Shot 2022-09-21 at 3.24.53 PM.png

</aside>

<aside> 2️⃣ Class 생성

  1. 프로젝트가 생성되면 아래와 같은 폴더 구조를 갖게 된다.

  2. src > test > java > package 생성(꼭! lowercase) > Class 생성

    Screen Shot 2022-09-21 at 3.31.37 PM.png

</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

  1. assertj를 사용하기 위해서 먼저 외부 의존성(dependency)을 추가해야한다.(assertj-core library를 가져와야함) 🔗 assertj.github.io 참고 : https://assertj.github.io/doc/#get-assertj-core

  2. 초기 프로젝트 생성시 build tool에 적합한 assertj-core 의존성을 복사한다. (필자는 초기 프로젝트 생성 시 [Build system]으로 Gradle을 선택함(2.1️⃣-2))

    Screen Shot 2022-09-21 at 8.30.48 PM.png

  3. 복사한 코드를 build.gradle 파일 > dependencies{}에 붙여넣는다.

</aside>

<aside> 4️⃣ Assrtions 클래스 입문 시 포인트✌️ : import

  1. 코드 입력시 Annotation(애노테이션)과 assertThat에 빨간글씨로 에러가 발생하고 있다면

  2. 우선 @Test Annotation부터 import해서 해결하자!

    import class 클릭 import org.junit.jupiter.api.Test; import 된다.

  3. assertThat도 위의 해결방법과 동일하게 해결해보자.

    import static method 클릭 Assertions.assertThat(org.assertj.core.api) 클릭 import static org.assertj.core.api.Assertions.assertThat; import 된다.

     ![Screen Shot 2022-09-21 at 7.28.54 PM.png](<https://s3-us-west-2.amazonaws.com/secure.notion-static.com/251eb9f7-7f0e-4049-9f93-286d368fa9c1/Screen_Shot_2022-09-21_at_7.28.54_PM.png>)
     
     ![Screen Shot 2022-09-21 at 7.29.03 PM.png](<https://s3-us-west-2.amazonaws.com/secure.notion-static.com/630ac850-4515-4960-b70c-618b5dedc9da/Screen_Shot_2022-09-21_at_7.29.03_PM.png>)
    

</aside>

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

Screen Shot 2022-09-21 at 8.56.16 PM.png

</aside>

🔗 출처