JUnit이란?
: 자바 언어를 위한 단위 테스트 프레임워크
* 단위 테스트 : 작성한 코드가 의도대로 작동하는지 작은 단위로 검증하는 것
JUnit 특징
: 테스트 방식을 구분할 수 있는 애너테이션 제공 (@Test 애너테이션으로 메서드 호출 시, 호출할 때마다 새 인스턴스 생성 및 독립 테스트 가능)
: 예상 결과를 검증하는 어셜션 메서드 제공
: 사용 방법이 단순하고 테스트 작성 시간이 적음
: 자동 실행, 자체 결과를 확인하고 즉각적인 피드백을 제공
JUnit로 단위 테스트 코드 만들기
[1단계] JUnitTest.java 파일 생성
public class JUnitTest{
@DisplayName("1+2는 3이다". ) // 테스트 이름 지정
@Test // 테스트 메서드 지정
public void JunitTest(){
int a = 1;
int b = 2;
int sum = 3;
Assertions.assertEquals(a+b, sum);
}
}
1) @DisplayName : 테스트 이름 명시 애너테이션
2) @Test : 테스트를 수행하는 메서드로, 테스트끼리 영향을 주지 않는 독립적인 테스트 진행
3) Assertions.assertEquals() : JUnit에서 제공하는 검증 메서드로, 기댓값과 검증값을 넣으면 동일한지 여부 체크
[2단계] 테스트 결과 확인
: Run을 통해 테스트 결과를 확인하며, 여러개의 테스트를 검증할 경우 하나라도 실패하면 전체 테스트를 실패함
[3단계] JUnit 테스트 애너테이션
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("@BAfterEach");
}
}
1) @BeforeAll 애너테이션
: 전체 테스트를 시작하기 전에 처음으로 한 번만 실행
: 한 번만 호출되어야 하기 때문에 메서드는 static으로 선언
2) @BeforeEach 애너테이션
: 테스트 케이스를 시작하기 전에 매번 실행
: 각 인스턴스에 대해 메서드를 호출해야 하기 때문에 static이 아니어야 함
3) @AfterAll 애너테이션
: 전체 테스트를 종료하기 전에 처음으로 한 번만 실행
: 한 번만 호출되어야 하기 때문에 메서드는 static으로 선언
2) @AfterEach 애너테이션
: 테스트 케이스를 종료하기 전에 매번 실행
: 각 인스턴스에 대해 메서드를 호출해야 하기 때문에 static이 아니어야 함
[5단계] 출력 결과 확인
@BeforeAll // 메서드 시작 전 한 번만 실행
----------
@BeforeEach // 테스트 개수만큼 반복 실행
test1
@AfterEach
----------
@BeforeEach
test2
@AfterEach
----------
@BeforeEach
test2
@AfterEach
----------
@AfterAll // 메서드 종료 전 한 번만 실행
AssertJ란?
: JUnit과 함께 사용해 검증문의 가독성을 높여주는 라이브러리
// 기댓값과 비교값의 구분이 잘 되지 않음
Assertions.assertEquals(a+b, sum);
// AssertJ 이용 >> a와 b를 더한값이 sum과 동일해야 함
assertTat(a+b).isEqualsTo(sum);
메서드 이름 | 설명 | |
isEqualTo(A) | A값과 같은지 검증 | |
isNotEqualTo(A) | A값과 다른지 검증 | |
contains(A) | A값을 포함하는지 검증 | |
doesNotContain(A) | A값을 포함하지 않는지 검증 | |
startsWith(A) | 접두사가 A인지 검증 | |
endsWith(A) | 접미사가 A인지 검증 | |
isEmpty() | 비어있는 값인지 검증 | |
isNotEmpty() | 비어있지 않은 값인지 검증 | |
isPositive() | 양수인지 검증 | |
isNegative() | 음수인지 검증 | |
isGreaterThan(1) | 1보다 큰 값인지 검증 | |
isLessThan(1) | 1보다 작은 값인지 검증 |
'학습 기록 > 스프링 부트3 백엔드 개발자 되기[자바편]' 카테고리의 다른 글
[05장.1] 1. 데이터베이스 관리자, DBMS (0) | 2023.09.01 |
---|---|
[04장.3] 제대로 테스트 코드 작성해보기 (0) | 2023.09.01 |
[04장.1] 테스트 코드 개념 (0) | 2023.08.30 |
[03장.3] 스프링 부트 요청-응답 과정 한 방에 이해하기 (0) | 2023.08.29 |
[03장.2] 3. 기본 프로그램 작동 확인(03장.2-2 코드) (0) | 2023.08.29 |