개요

Dependencies

dependencies {
    testImplementation "org.junit.jupiter:junit-jupiter"
    testImplementation "org.assertj:assertj-core"
}

AssertJ Static Import

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

AssertJ Test Targeting

assertThat(테스트 타켓).메소드1().메소드2().메소드3();

Object Assertions

public class Human {
		private String name;
		private int age;
}

Human leo = new Human("Leo", 25);
Human ragnar = new Human("ragnar". 25);

// 객체의 참조(동일성, ==)를 비교 - fail
assertThat(leo).isEqualTo(ragnar); 

// 객체의 필드(동등성, equals) 비교 - success
assertThat(leo).isEqualToComparingFieldByFieldRecursively(ragnar); 

Class Assertions

// 특정 클래스가 인터페이스인지 확인
assertThat(Runnable.class).isInterface();

// 특정 클래스가 다른 클래스에 할당 가능한지 확인
assertThat(Exception.class).isAssignableFrom(NoSuchElementException.class);