본문 바로가기
Spring

[TIL] 231130Spring 단위테스트 Unit Tests 반복테스트 Assertions Given-When-Then

by studymode 2023. 11. 30.

JUnit5

- java 프로그래밍용 단위 테스트 프레임워크

 

 

@BeforeEach 

@AfterEach

각각의 테스트코드 전/후에 실행

 

 

@BeforeAll

@AfterAll

모든 테스트코드 전/후 한번만 실행

 

 

@DisplayName

테스트 내용 표시

 

 

@Nested

테스트 내용/주제별로 묶어서 테스트

 

 

@Order

테스트 순서를 명시

사용 위해 @TestMethodOrder(MethodOrderer.OrderAnnotation.class) 애너테이션 추가하기

 

 

테스트 반복하기

@RepeatedTest (value = 5, name = "반복테스트")

@RepeatedTest(value = 5, name = "반복 테스트 {currentRepetition} / {totalRepetitions}")
void repeatTest(RepetitionInfo info) {
    System.out.println("테스트 반복 : " + info.getCurrentRepetition() + " / " + info.getTotalRepetitions());
}

 

 

@ParameterizedTest

파라미터값 이용하여 반복 테스트

@DisplayName("파라미터 값 활용하여 테스트 하기")
@ParameterizedTest
@ValueSource(ints = {1, 2, 3, 4, 5, 6, 7, 8, 9})
void parameterTest(int num) {
    System.out.println("5 * num = " + 5 * num);
}

 

전달되는 파라미터 수만큼 테스트 반복

 

 

 

 

Assertions

assertEquals(expected, actual) : 예상값 넣어서 테스트

assertNotEquals : 예상값과 다를것을 테스트

 

assertTrue : boolean으로 확인

assertFalse

 

 

assertNotNull : NotNull인지 확인

assertNull

 

assertThrows(expectedType, executable)

: 예외 확인

 

 

 

Service 테스트

given(productRepository.findById(productId)).willReturn(Optional.of(product));

Service단 test할때 repository값을 given으로 넣어줌

 

 

 

 

Given - When - Then

Given: 테스트하고자 하는 값 선언

When: 테스트 코드 실행

Then: 예상 결과 예측