assertThat 관련 메서드 (org.assertj.core.api.Assertions.assertThat)
| assert 메서드 |
설명 |
| assertThat(a).~~~ |
객체 a가 뒤에 설정한 검증조건 만족하는지 확인 |
검증조건 종류
(1) 문자열
| 검증조건 |
설명 |
| isEqualTo(value) |
value와 같은 값인지 확인 |
| isEmpty() |
비어있는지 확인 |
| isNull() |
Null 인지 확인 |
| isNotNull() |
Null이 아닌지 확인 |
| startsWith(value) |
value로 시작하는지 확인 |
| endsWith(value) |
value로 끝나는지 확인 |
| contains(value) |
value가 포함되는지 확인 |
(2) 숫자
| 검증조건 |
설명 |
| isPositive() |
양수인지 확인 |
| isBetween(start, end) |
start <= x <= end 인지 확인 |
| isGreaterThan(number) |
number보다 큰 지 확인 |
| isLessThan(number) |
number보다 작은 지 확인 |
| isZero() |
0 인지 확인 |
(3) 날짜
| 검증조건 |
설명 |
| isBefore(date) |
해당 날짜가 < date 인지 |
| isAfter(date) |
해당 날짜가 > date 인지 |
| isBeforeOrEqualTo(date) |
해당 날짜가 <= date 인지 |
| isAfterOrEqualTo(date) |
해당 날짜가 >= date 인지 |
(4) 불리언
| 검증조건 |
설명 |
| isTrue() |
true 인지 확인 |
| isFalse() |
false 인지 확인 |
(5) Collection
● Satisfy - Consumer(매개변수 O, 리턴값 X) : 람다식마다 Assertion 실행가능
| 검증조건 |
설명 |
| AllSatisfy(Consumer) |
람다식이 모두 맞는지 확인 |
| anySatisfy(Consumer) |
람다식이 맞는게 있는지 확인 |
| noneSatisfy(Consumer) |
람다식이 맞지 않는지 확인 |
● Match - Predicate(매개변수 O, 리턴값 Boolean) : 람다식의 리턴 Boolean에 Assertion 실행
| 검증조건 |
설명 |
| AllMatch(Predicate) |
람다식이 모두 맞는지 확인 |
| anyMatch(Predicate) |
람다식이 맞는게 있는지 확인 |
| noneMatch(Predicate) |
람다식이 맞지 않는지 확인 |
// 리스트에 운영타입이 있는지 확인
assertThat(typeList).anySatisfy(type -> {
assertThat(type.getName()).isEqualTo("운영");
});
assertThat(typeList).anyMatch(type -> type.getName().equals("운영"));
● Filter
| 검증조건 |
설명 |
| filterdOn(람다식 or 조건) |
collection 객체에 필터 적용 |
람다식 : assertThat(userList).filteredOn(user -> user.getName().equals("e"))
조건 : assertThat(userList).filteredOn("name", "e")
List<User> userList = new ArrayList<User>();
User e = new User(1, "europani");
User a = new User(2, "alipa");
User c = new User(3, "cephi");
userList.add(e, a, c);
assertThat(userList).filteredOn(user -> user.getName().contains("e"))
.contains(e, c);
→ userList에서 이름에 ‘e’가 포함된 User객체를 필터한 후 그 리스트에 객체 e, c가 포함되어 있는지 확인
| 검증조건 |
설명 |
| first() |
컬렉션의 첫번째 원소 가져오기 |
| last() |
컬렉션의 마지막 원소 가져오기 |
| element(index) |
컬렉션의 지정한 인덱스 원소 가져오기 |
● Extract
| 검증조건 |
설명 |
| extracting(속성) |
특정 속성만 추출 가능 |
assertThat(userList).extracting("name").contains("e")
(6) 테스트 실패 메시지
-
as(description, args..)를 통해 테스트 실패시 출력될 메시지를 정할 수 있다
- as는 반드시 검증조건 앞에서 작성해야 한다
@Test
void test() throws Exception {
String str = "name";
assertThat(str).as("값을 확인해주세요. 현재값 : %s", str).isEqualTo("name2");
}
AssertJ공식문헌