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: 예상 결과 예측
'Spring' 카테고리의 다른 글
[TIL] 231206Spring Optional, 쿠키, 세션 만들기, JWT (0) | 2023.12.06 |
---|---|
[TIL] 231201Spring 통합테스트 Service Test (0) | 2023.12.02 |
[TIL] 231130Spring Timestamped @Service @Transactional (0) | 2023.11.30 |
[TIL] 231124 Spring Security 로그인 (1) | 2023.11.24 |
[TIL] 231123 Spring Filter, Spring Security 프레임워크 (2) | 2023.11.23 |