반응형
Junit 4
Junit 기본 제공
org.junit.Assert.*;
Junit에는 위의 패키지에서 기본 제공되던 assertThat이 있었다.
하지만 검증이 좀 딸려서 AssertJ 쓰는게 좋았음.
org.assertj.core.api.Assertions
AssertJ는 위의 패키지를 말함
Junit 5
Junit 기본 제공
org.junit.jupiter.api.Assertions
Junit에서 기본제공하는 jupiter 패키지의 assertEquals와 assertThrow가 있다.
assertEquals("zzzz", mvcDto.getName());
간단한게 검사할 때 쓰인다.
결론은 AssertJ 추천
Hamcrest
org.hamcrest.Matchers
assertThat(mvcDto.getName(), is("zzzz"));
assertThat(numbers, everyItem(lessThanOrEqualTo(10)));
대표적으로 assertThat을 사용한다.
위에서 사용한 is, evertItem, lessThanOrEqualTo와 같은 Matchers 문법을 인지하고 검색해서 찾아야하는 단점이 존재함.
결론은 AssertJ 추천
AssertJ
org.assertj.core.api.Assertions
Jupitor(Junit 기본제공)에도 Assertions가 있었지만 AssertJ도 Assertions이다.
대표적으로는 assertThat을 이용해 검사한다.
그리고 복잡하게 검사하는 assertThat이 있다.
Assertions.assertThat("zzzz").isEqualTo()
장점을 나열 하자면
1. 메소드 체이닝 가능(hamcrest보다 직관적이다)
2. IDE 자동완성
3. Controller 테스트할 때나 hamcrest를 이용해 jsonPath(json 객체 이름 따는거)에서 사용
4. 근데 결론적으로만 보면 hamcrest가 더 가독성은 좋다.
728x90
'🍃 Spring' 카테고리의 다른 글
[Spring] 스프링에서 가상 스레드를 이용한 부하테스트 (2) | 2024.03.15 |
---|---|
@Autowired HttpServletRequest 사용하기(+RequestContextHolder, ThreadLocal) (0) | 2023.11.10 |
@WebMvcTest에 대한 올바른 사용법 및 시행착오 (0) | 2023.08.22 |
Spring Actuator + Prometheus + Grafana (0) | 2023.08.13 |
Spring Actuator와 Thread(+@Scheduled) (0) | 2023.08.12 |