🍃 Spring

JUnit 문법

loose 2023. 8. 26. 02:03
반응형

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