반응형
❓ 단위테스트
- 개발자 레벨의 테스트
- 주로 그 기능을 수행한 개발자가 테스트
✔️ 단위테스트의 목적
- 기능 하나를 테스트하는 것
- 예상한 값과 일치하는 값이 나오는지 테스트
Service, Controller가 테스트 대상. Repository는 테스트할 필요 없음
✔️ 장점
- 반복적인 테스트 실행 가능
- @Transactional 어노테이션을 부착하면 자동으로 테스트 성공 직후 Rollback이 실행돼서 insert 작업도 여러번 테스트할 수 있다.
- 테스트의 성공/실패 여부를 빠르게 확인할 수 있다.
- Spring에서 제공해주는 스프링 테스트와 연동해서 스프링 기반의 어플리케이션을 쉽게 테스트할 수 있는 테스트 케이스를 작성할 수 있다.
* 통합테스트 : 여러 모듈 간에 연계가 잘 이루어지고 있는지 테스트
📌 Eclipse에서의 JUnit Test 실행
1. Dependency 추가
- @SpringBootTest 어노테이션 사용할 준비
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2. 테스트 케이스 작성 (@Test)
- @Test 어노테이션 부착 시, 단위테스트의 실행대상이 됨
- 테스트 케이스를 작성할 때는 반드시 void 타입이어야 한다. (매개변수 전달 불가)
@SpringBootTest
public class UserRepositoryTest {
@Autowired
UserRepository userRepository;
@Test
@DisplayName("UserRepository 구현객체는 Null이 아니다.")
public void testConfig() {
assertThat(userRepository).isNotNull();
}
}
3. JUnit Test 실행
- 1) 프로젝트 우클릭
- 2) Run As 클릭
- 3) JUnit Test 클릭
💡 실행결과
- 초록막대 : 테스트 성공
< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >
🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Spring-JUnit-단위테스트
'BackEnd > Spring' 카테고리의 다른 글
[Spring] Spring Data JPA 연관관계 어노테이션 @ManyToOne (0) | 2025.01.18 |
---|---|
[Spring] Optional 처리 (0) | 2025.01.18 |
[Spring] JPA(Java Persistence API)와 Spring Data JPA (0) | 2025.01.18 |
[Spring] Thymeleaf 타임리프 (+JSP 비교) (0) | 2025.01.18 |
[Spring] @RequestBody +서버에 요청메시지 보내고 받는 방법(쿼리스트링, @PathVariable, FormData) (0) | 2025.01.18 |