-
테스트 작성하기Back end/SpringBoot 2023. 12. 12. 12:41
스프링 부트에서의 테스트는 소프트웨어 애플리케이션의 품질을 보장하고 코드의 정확성을 검증하기 위한 활동입니다. 테스트는 주로 두 가지 유형으로 나눌 수 있습니다: 단위 테스트(Unit Test)와 통합 테스트(Integration Test).
1. **단위 테스트(Unit Test):**
- 개별적인 코드 블록 또는 모듈이 예상대로 작동하는지 확인하는 테스트입니다.
- 주로 JUnit, TestNG 등의 테스트 프레임워크를 사용하여 작성됩니다.
- 스프링 부트에서는 주로 서비스(Service), 리포지토리(Repository), 컨트롤러(Controller) 등의 각 컴포넌트에 대한 단위 테스트를 작성합니다.
- 목 객체(Mock Object)를 사용하여 외부 의존성을 대체하여 테스트의 격리성을 유지합니다.
2. **통합 테스트(Integration Test):**
- 다수의 컴포넌트 간 상호 작용 및 통합된 시스템의 동작을 검증하는 테스트입니다.
- 주로 스프링 부트의 내장된 테스트 지원 및 테스트 슬라이스(Test Slices)를 활용하여 작성됩니다.
- 데이터베이스, 외부 서비스와의 상호 작용 등을 포함하여 전반적인 시스템의 동작을 확인합니다.
스프링 부트에서는 테스트를 자동화하고 간편하게 수행할 수 있도록 다양한 도구와 기능을 제공합니다. 테스트는 소프트웨어의 변경사항이나 새로운 기능 추가 시 안정성을 유지하고 코드의 신뢰성을 확보하기 위한 중요한 단계 중 하나입니다.1. 테스트 하고 싶은 메소드에서 우클릭 generate -> test로 test.java 생성
2. index() 메소드 테스트 예시
=> data.sql(실제 데이터)의 값과 예상 데이터의 값이 다르므로 비교시 failed가 뜸
=> 데이터값 일치 시켜주니 비교시 성공(일치) 결과값이 나온다.
2. show() 메소드 테스트 예시
=> 해당 값이 일치하므로 테스트 성공
=> test성공. 이유는 아래
=> 실제 service값에 orElse문으로 데이터가 없으면 null 이라 표현했기 때문!
=> create 값 테스트 결과 성공!
하지만 id 값에 4L대신 3L을 적으면 기존 데이터값이 존재하므로 테스트 결과는 실패함.
=> 하지만 id 값에 4L대신 3L을 적으면 기존 데이터값이 존재하므로 테스트 결과는 실패함.
=> 일반적으로 create는 id값이 필요가 없으므로 예상값 null을 예측함.
=> 테스트 결과는 성공
나머지 메소드도 테스트 해보기
'Back end > SpringBoot' 카테고리의 다른 글
스프링 부트 항해 (From 김부장) 간략 머리속 내용 정리 (0) 2024.10.22 .xml 파일과 .properties 파일의 차이점 (1) 2024.05.03 서비스 계층과 트랜잭션 (0) 2023.12.11 HTTP와 RestController (1) 2023.12.08 폼 데이터 주고 받기 (0) 2023.11.29