인프런
테스트 추가하기: Service 테스트
date
Jan 23, 2025
slug
test-on-spring-with-architecture-3-2
status
Public
tags
테스트를 추가하고 싶은 개발자들의 오답노트
author
summary
[테스트를 추가하고 싶은 개발자들의 오답노트] 강의 정리
type
Post
thumbnail
updatedAt
Mar 24, 2025 01:18 PM
category
인프런
📝 강의 정리
테스트 관련 정리
[1]. assertThatThrownBy
ACTIVE
상태가 아닌 회원을 조회하면 Exception을 던지는 메서드를 테스트 할 때
// userService.getByEmail() assertThatThrownBy(() -> { // when ~~~~ }).isInstanceOf(CustomException.class); -> 어떤 행위가 일어날 때, 발생하는 exception이 CustomException이라면 테스트 통과
[2]. @SqlGroup
- 테스트용 유저 데이터를 삽입하는 sql 코드를 @SQL 어노테이션을 통해 선언해서 사용 중인 상황
🚨 개별 테스트에선 문제가 없지만, 전체 테스트 시 에러 발생
→
@SQL
어노테이션을 통해 실행한 sql이 중복으로 실행되어, 중복 데이터가 삽입되면서 발생한 에러.✅
@SqlGroup
어노테이션을 통해 SQL을 관리// As-Is @Sql("~~test-data.sql") // To-Be @SqlGroup({ @Sql( value = "classpath:/sql/user-repository-test-data.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD ), @Sql( value = "classpath:/src/test/resources/sql/delete-all-data.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD ) }) -> 테스트 전 실행할 sql파일과, 테스트 후 진행할 sql파일을 관리