study/JUnit

[sailor-moon] 2024.09.23_JUnit : JUnit 기본 활용

듀2 2024. 9. 23. 17:30

* IntelliJ JUnit 설정

- test Directory 생성

File - Project Structre - Modules - Sources - Package 우클릭 - New Directory - test 생성 후 Tests 클릭(초록색으로 바뀌어야 함)

 

- Library 추가

File - Project Structure - Libraries - New Project Libraries - From Maven - org.junit.jupiter:junit-jupiter-api:5.11.0 검색 후 추가 (junit)

org.assert.assertj-core.3.26.3 검색 후 추가(assertJ)

 

- Dependency 추가

File - Project Structure - Modules - Dependencies - junit.jupiter.api 체크

 

* Annotation

스프링처럼 JUnit에서도 Annotation을 사용하여 해당 모듈이 테스트를 하는 메서드라고 지정한다.

@Test // 테스트를 만드는 모듈
@DisplayName // 테스트클래스 또는 메서드에 이름 지정
@BeforeEach // Lifecycle과 관련, 각 테스트 메서드가 실행되기 전 호출되는 메서드, 여러 번 호출

 

* Assertions

테스트 메서드 내에서 테스트를 위해 사용한다.

assertEquals(a, b); // 객체 a와 b가 같은 값을 가지는지
assertArrayEquals(a, b); // a와 b 배열이 일치하는지
assertIterableEquals(a, b); // a와 b Set이 일치하는지
assertThrows(예외처리클래스.class, () -> 예외발생예상코드); // 예외가 발생하는지
assertNotNull(a); // 객체 a가 null이 아닌지

 

* Assert J

- JUnit 테스트에 사용할 수 있는 외부 라이브러리

- Method Chaining을 활용하여 기본 Assertions 보다 가독성이 좋고, 더 복잡한 조건을 검증하기 좋다.

assertThat(a).isEqualTo(b); // a와 b가 같은 값을 가지는지
assertThat(list).contains("a"); // list가 "a"를 포함하는지

assertThatThrownBy(() -> {
	// 예외를 던질 코드
})
.isInstanceOf(예외클래스.class)
.hasMessage("예외 메세지");
728x90