org.junit.Assert.assertThat
- junit에서 지원하는 assertThat이다.
- 기본 형태는 아래와 같다
public static <T> void assertThat(T actual, Matcher<? super T> matcher)
- 첫번째 매개변수로 비교할 값
- 두번째 매개변수로 비교하는 로직(matcher)를 넣는다.
- matcher를 직접 작성하는 것은 좋지 못하고 주어진 것을 사용하자.
- 이는 기능적으로 불편하여 assertj의 assertThat을 주로 사용한다.
org.assertj.core.api.Assertions.assertThat
- assertThat(타겟).메소드().메소드() 의 메소드 체이닝 패턴 형식으로 사용한다.
- 사용될 수 있는 메소드로는
isEqualTo(e)
,contains(e)
,doesNotContain(e)
,startsWith(e)
,endsWith(e)
,isNotEmpty()
,isPositive(n)
,isGreaterThan(n)
등이 있다. - 값 비교
- assertThat(a).isEqualTo(b);
- a와 b의 참조가 같은 지
- assertThat(a).isEqualToComparingFieldByFieldRecursively(b);
- a와 b의 필드 값이 같은지
- assertThat(a).isEqualTo(b);
- Boolean 비교
- assertThat(a).isTure();
- assertThat(a).isFalse();
- assertThat(a).contains(b);
- a가 b를 포함하는 지
- iterable,array,assertion 모두가능
- assertThat(a).isNotEmpty();
- 리스트가 비어있지 않은 지
- iterable,array,assertion 모두가능
- assertThat(a).doesNotContain(b);
- a가 b를 포함하지 않는 지
- iterable,array,assertion 모두가능
- assertThat(a).startsWith(b);
- a가 b로 시작하는지
- iterable,array,assertion 모두가능
- assertThat(a).endsWith(b);
- a가 b로 끝나는 지
- iterable,array,assertion 모두가능
- assertThat(a).isNotEmpty(b);
- iterable,array,assertion 모두가능
- assertThat(a).isPositive(b);
- assertThat(a).isGreaterThan(b);
- assertThat(result).contains("2", "1");
- result가 2, 1을 포함하는지
- assertThat(result).containsExactly("1", "2");
- result가 1,2만 있는지
- assertThatThrownBy
- 익셉션이 발생하는 케이스를 테스트할 때 사용
- isInstanceOf(a)
- 예상되는 예외를 a에 입력
- hasMessageContaining(a)
- 예외 메세지에 a가 포함되어 있는 지
'java' 카테고리의 다른 글
[java] MVC 패턴이란? 좋은 MVC 패턴을 구현하려면? (1) | 2023.11.24 |
---|---|
public void static main(String args)의 의미 (0) | 2023.11.24 |
DAO, DTO, VA란? (2) | 2023.11.03 |
[Java] public void static main(String args)의 의미 (0) | 2023.10.26 |
[Java] 예외처리, throwable이란/ try,catch,throw,finally란? (0) | 2023.10.26 |