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공식문헌