반응형
테스트의 종류
단위 테스트 (Unit Test) - TDD
- 테스트 가능한 가장 작은 소프트웨어를 실행하여 예상 동작을 검증하는 테스트
- 테스트 대상 단위
- 클래스
- 메소드
- 테스트 단위의 크기 작을수록 복잡성이 낮아지고, 테스트 활용이 더 쉬워진다.
통합 테스트 (Integration Test)
- 단위 테스트보다 더 큰 동작을 위해 여러 모듈을 모아 의도대로 협력하는 지 검증하는 테스트
- 외부 라이브러리(API, DB 등..)까지 묶어 검증할 때 사용한다.
- 단위 테스트보다 더 많은 코드를 테스트하기 때문에 신뢰성이 떨어진다.
- 또한, 에러 발생 시 확인이 쉽지 않아 유지보수가 힘들다.
인수 테스트 (Acceptance Test)
- 사용자 시나리오에 맞춰 수행하는 테스트
- 단위/통합 테스트와 달리 비즈니스에 초점을 둔다
- 주로 API를 확인하는 방식으로 이뤄진다.
JUnit
- 자바 개발자의 93% 사용하는 단위 테스트 프레임워크
- 테스트 결과는 Test Class로 개발자에게 테스트 방법 및 클래스의 이력 공유 가능
- Assert 메서드로 테스트 케이스의 수행 결과 판별
- 어노테이션으로 간결하게 지원 (JUnit4 부터)
- JUnit5는 SpringBoot 2.2 버전 이후 기본으로 의존성 추가됨
- JUnit4 Test → JUnit5 Test 자동 변환 방법
- JUnit4 Test Class 이름에 커서 두고 ALT + ENTER 혹은 COMMAND + ENTER
- 하단에 변환된 항목을 확인한 후 DO REFACTOR 클릭 시 자동 변환
build.gradle
// JUnit5를 사용하기 위해 JUnit4 제외 (exclude) 한다.
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude module: 'junit'
}
Assert 요약
- assertArrayEquals(a, b) : 배열 a, b 일치 여부 확인
- assertEquals(a, b) : 객체 a, b 일치 여부 확인
- assertTrue(a) : 조건 a 참인지 확인
- assertNotNull(a) : 객체 a 가 null 아닌지 확인
Annotation 요약
- @Test : 테스트 만드는 역할
- @DisplayName : 테스트 클래스/메서드의 사용자 정의 이름 표시
- @DisplayNameGeneration
- @BeforeEach / @AfterEach : 각 테스트 메서드 전/후 실행
- @BeforeAll / @AfterAll : 모든 테스트 메서드 전/후 실행
- @Disabled : 테스트 클래스/메서드 비활성화
- @RepeatedTest / @PamaeterizedTest & @ValueSource : 테스트 반복 어노테이션
- @Nested
728x90
반응형
'JVM > JUnit' 카테고리의 다른 글
[JUnit] 소개 - 6. MockMVC 란 ? (0) | 2023.09.30 |
---|---|
[JUnit] 소개 - 5. BDDMockito 란? (0) | 2023.09.27 |
[JUnit] 소개 - 4. Mokitio 란 ? (1) | 2023.09.26 |
[JUnit] 소개 - 3. Annotation (TestInstance, TestMethodOrder, Tag) (0) | 2023.09.21 |
[JUnit] 소개 - 2. Assertion 과 Assumption (0) | 2022.11.01 |
댓글