테스트
단위테스트란?
- 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 확인하는 기법
- 빠르게 작성 가능, 정확한 원인 파악 빠르게 가능
Before - After
- @BeforeEach : 각각의 테스트코드 실행 전 수행
- @AfterEach : 각각의 테스트코드 실행 후 수행
- @BeforeAll : 모든 테스트코드 실행 전 수행
- @AfterAll : 각각의 테스트코드 실행 후 수행
Util
- @DisplayName("내용") : 네이밍
- @Nested : 그룹화
- @Order : 순서지정
반복
@RepeatedTest(value = 5, name = "반복 테스트 {currentRepetition} / {totalRepetitions}")
void repeatTest(RepetitionInfo info) {
System.out.println("테스트 반복 : " + info.getCurrentRepetition() + " / " + info.getTotalRepetitions());
}
@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(기대값, 판별할 코딩)
- assertTrue(boolean:판별할 코딩)
- assertNotNull(판별할 코딩)
- assertThrows
@Test
@DisplayName("assertThrows")
void test4() {
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> calculator.operate(5, "?", 2));
assertEquals("잘못된 연산자입니다.", exception.getMessage());
}
Mockito란?
통합테스트란?
- 두개 이상의 모듈이 연결된 상태를 테스트할 수 있음
- @SpringBootTest
- 스프링이 동작되도록 해주는 애너테이션
- IoC/DI 가능
- Repo를 사용한 DB CRUD가능