자바 언어를 위한 단위 테스트 프레임워크이다.
단위 테스트란?
작성한 코드가 의도대로 작동하는지 작은 단위(메서드)로 검증하는 것.
파일 생성
[src -> test -> java] 폴더에 생성
테스트 파일 작성 후 5번 째 줄 ► 버튼으로 실행
체크 표시를 누르면 테스트 현황을 볼 수 있다.
한글이 깨지는 경우
[Setting - Build, Execution, Deployemnt - Gradle]에서 Bulid and run using과 Run tests using을 Gradle에서 IntelliJ IDEA로 바꾸면 됨.
import org.junit.jupiter.api.*;
public class JUnitCycleTest {
@BeforeAll
static void beforeAll() {
System.out.println("@BeforeAll");
}
@BeforeEach
public void beforeEach() {
System.out.println("@BeforeEach");
}
@Test
public void test1() {
System.out.println("test1");
}
@Test
public void test2() {
System.out.println("test2");
}
@Test
public void test3() {
System.out.println("test3");
}
@AfterAll
static void afterAll() {
System.out.println("@AfterAll");
}
@AfterEach
public void afterEach() {
System.out.println("@AfterEach");
}
}
: 전체 테스트를 시작하기 전에 처음으로 한번만 실행. > static 선언
데이터베이스를 연결하거나 테스트 환경 초기화 등.
: 테스트 케이스를 시작하기 전에 매번 실행. > static (X)
테스트 메서드에서 사용하는 객체를 초기화하거나 테스트에 필요한 값을 미리 넣을 때 사용.
: 전체 테스트를 마치고 종료하기 전에 한 번만 실행. > static 선언
데이터베이스 연결을 종료 할 때나 공통적으로 사용하는 자원을 해제할 때 사용.
: 각 테스트 케이스를 종료하기전 매번 실행. > static (X)
테스트 이후에 특정 데이터를 삭제해야하는 경우
: JUnit과 함께 사용해 검증문의 가독성을 높여줌
AssertJ를 사용하지 않아 잘 구분이 안되는 예시
Assertions.assertEquals(a + b, sum);
AssertJ를 사용한 예시
assertThat(a + b).isEqualTo(sum);
:이 경우 a와 b를 더한 값이 sum과 같아야 한다는 의미로 정확하게 읽힌다.
매서드 이름 | 설명 |
---|---|
isEqualTo(A) | A 값과 같은지 검증 |
isNotEqualTo(A) | A 값과 다른지 검증 |
contains(A) | A 값을 포함하는지 검증 |
doesNotContains(A) | A 값을 포함하지 않는지 검증 |
startsWith(A) | 접두사가 A인지 검증 |
endsWith(A) | 접미사가 A인징 검증 |
isEmpty() | 비어있는 값인지 검증 |
isNotEmpty() | 비어있지 않은 값인지 검증 |
isPositve() | 양수인지 검증 |
isNegative() | 음수인지 검증 |
isGreaterThan(1) | 1보다 큰 값인지 검증 |
isLessThan(1) | 1보다 작은 값인지 검증 |