개요
- AssertJ 의
org.assertj.core.api.Assertions 라이브러리를 사용해보자.
- 추가 내용은 하단의 공식 문서 참고
Dependencies
dependencies {
testImplementation "org.junit.jupiter:junit-jupiter"
testImplementation "org.assertj:assertj-core"
}
AssertJ Static Import
import static org.assertj.core.api.Assertions.*;
- AssertJ의 다양한 API를 클래스 이름없이 바로 사용 가능
AssertJ Test Targeting
assertThat(테스트 타켓).메소드1().메소드2().메소드3();
- Assertions.assertThat() 에 object 를 전달하면 assertion 을 받을 수 있다.
- 증명의 대상을 설정하는 정도로 생각하면 좋을 것 같다.
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);
- 해당 필드, 클래스 유형, annotations 의 존재 등을 체크한다.