코딩공작소

스프링부트 Service단에 대한 테스트코드 개발 본문

어플리케이션개발/토이프로젝트(취미)

스프링부트 Service단에 대한 테스트코드 개발

안잡아모찌 2024. 10. 24. 23:03

컨트롤러 단에 대한 테스트 코드 작성 전 서비스 단에 대한 테스트 코드를 먼저 검증해보기로 했다.

 

테스트 클래스 파일을 만드는 단축키는 shift + command + T 이다.

기본적으로 테스트 코드를 짜기 위해 필요한 어노테이션에 대해 알아보자

1. @SpringBootTest

  • 기능: 이 어노테이션은 스프링 부트 애플리케이션의 전체 컨텍스트를 로드하여 통합 테스트를 실행하는 데 사용됩니다. 즉, 애플리케이션을 실제 실행할 때처럼 모든 빈을 로드하여 테스트를 진행합니다.

2. @RunWith(SpringRunner.class)

  • 기능: JUnit과 스프링의 테스트 실행기를 통합합니다. 스프링 컨텍스트에서 JUnit 테스트를 실행하는 데 사용됩니다.

3. @Transactional

  • 기능: 테스트 실행 중에 트랜잭션을 유지하며, 기본적으로 테스트가 끝난 후에 롤백됩니다. 데이터베이스 상태를 초기화하는 데 유용합니다.

 

 

Todo Save

그 유명한 given when then

새로운 Todo객체를 만들고, 저장을 해준 후, 그 객체의 아이디를 통해 조회하여 데이터를 검증한다.
일부러 컨텐트를 다르게 입력해준 후 결과를 확인해보면

잘 검증되는 것을 볼 수 있다.

 

 

TodoUpdate

 

 

Todo delete

 

 

Todo selectAll

 

 

테스트 클래스 파일들을 통해 기본적으로, CRUD에 대한 서비스 함수들이 잘 작동하는 것을 검증했다.
이제 본격적으로 RESTApi를 개발하면 된다.

추후로, 컨트롤러 단에서 해당 서비스 함수들을 잘 이용해서 투두 리스크 관리 시스템의 API를 개발한다.