레포지토리 설계 / 테스트 코드 작성
안녕하세요!
저번 게시글에 이어서 오늘은 레포지토리 설계로 시작해볼게요.
Repository 패키지 생성 후 ItemRepository 인터페이스를 생성해줍니다.
JpaRepository를 상속받는 ItemRepository를 작성해줍니다.
JpaRepository는 두개의 제네릭 타입을 사용하는데, 첫 번째에는 엔티티 타입 클래스를 넣어주고, 두번째는 기본키 타입을 넣어줍니다.
Item 클래스의 기본키 타입은 Long 이므로 Long을 넣어줍니다.
JpaRepository는 기본적인 CRUD 및 페이징 처리를 위한 메소드가 정의되어 있다고 합니다. 엔티티를 저장하거나, 삭제, 또는 엔티티의 개수 출력 등의 메소드를 볼 수 있다고 해요. 이번에 작성할 테스트 코드는 엔티티를 저장하는 save() 메소드입니다.
💡JpaRepository에서 지원하는 메소드
메소드 | 기능 |
<S extends T> save(S entity) | 엔티티 저장 및 수정 |
void delete(T entity) | 엔티티 삭제 |
count() | 엔티티 총 개수 반환 |
Iterable<T> findAll() | 모든 엔티티 조회 |
테스트 환경의 경우 h2 데이터 베이스를 사용하려고 합니다. resource 아래에 application-test.properties 파일을 생성해주세요!
테스트 환경을 위한 별도의 properties를 만드는거에요.
테스트 코드를 작성해볼게요!
맥인 경우 cmd + shift + T 하시면 파일 생성이 됩니다! 윈도우는 ctrl + shift + T 하시면 돼요.
짠 이렇게 테스트 파일을 생성해줍니다.
- @TestProterySource : 테스트 코드 실행시 application.properties에 설정해둔 값보다 test.properties에 같은 설정이 있다면, 더 높은 우선순위를 부여해 줍니다.
- @Autowired : ItemRepository를 사용하기 위해 어노테이션을 사용하여 bean을 주입합니다.
- @Test : 테스트할 메소드 위에 선언해주고, 해당 메소드를 테스트 대상으로 지정해줍니다.
- @DisplayName : 지정한 테스트명이 노출됩니다.(Junit5에 추가된 어노테이션!)
테스트 코드를 실행시켜주면 ~
다음에는 조회기능으로 돌아올게요!👐