∎ Junit이란?
- 테스트 케이스 작성하는 프레임워크
- java 8부터 제공
- 스프링 부트에서 기본 제공
∎ Annotation 종류
⦁ @Test : 단위 테스트임을 명시
@Test(timeout=5000) : 실행시간 5000밀리초 초과시 실패
⦁ given, when, then 구조
- given : 데이터 준비
- when : 실행 함수
- then : 결과
⦁ @BeforeAll : 전체 메소드들을 실행 전에 한번 실행되는 메소드
⦁ @AfterAll : 전체 메소드들을 실행 후에 한번 실행되는 메소드
⦁ @BeforeEach : 각각의 메소드들 실행 전에 무조건 실행되는 메소드
⦁ @AfterEach : 각각의 메소드들 실행 후에 무조건 실행되는 메소드
ex. 각 메소드 실행 후 저장소 값을 비워줄 때
⦁ @Disabled : 임시로 테스트 메소드를 실행하고 싶지 않을 때
⦁ @DisplayName : 테스트를 눈에 띄게 하기위해 공백, Emoji, 특수문자를 지원
⦁ @RepeatedTest : 테스트를 반복적으로 하고 싶을 때, 횟수와 이름 설정 가능
⦁ @ParameterizedTest : 매개변수들을 대입하며 반복적으로 테스트할 때
⦁ @Nested : 테스트 클래스 안에 내부 클래스를 사용하고 싶을 때
∎ Assertions (단정) 메소드
단정 메소드를 이용하여 결과를 판별
⦁ org.junit.jupiter.api의 메소드
⦁ assertArrayEquals(a,b) : 배열 a,b가 일치하는지
⦁ assertEquals(a,b) : 객체 a,b가 같은 값을 가지는지
⦁ assertSame(a,b) : a,b가 같은 객체인지
⦁ assertTrue(a) : a가 참인지
⦁ assertNotNull(a) : a가 null이 아닌지.
⦁ assertTimeout(시간, 로직) : 시간 안에 실행 완료 가능한지 테스트
⦁ 예외 정상 발생 확인법
assertThrows(NullPointerException.class, () -> { 예외 예시 }); : 예시에 NullPointerException 발생하면 실행결과는 성공
⦁ org.assertj에 있는 메소드
- assertThat(actual).isEqualTo(expected); : assertEquals보다 좀 더 쉽게 읽힌다. 값의 동일 여부 비교
- assertThar().isSameAs(); : 객체 동일 여부 비교
⦁ Assumption (전제문) 메소드
⦁ assumeTrue : true가 아니면 테스트 전부 실행X
- assumingThat : 파라미터의 코드만 실행 안시킴
⦁ Test 작성시 주의사항
- System.out.println처럼 출력문은 되도록 사용하지 않는 것이 좋다.
'Spring' 카테고리의 다른 글
의존성 주입 원칙 (0) | 2024.08.10 |
---|---|
Singleton 패턴과 Spring Container (0) | 2024.08.10 |