제 13장: 테스트 코드 작성하기

강연주·2023년 10월 17일
0

테스트란

테스트 도구를 활용해 코드를 검증한다는 것은 테스트 코드를 작성해 실행한다는 말입니다. 테스트 코드는 보통 다음 3단계로 작성합니다.

  1. 예상 데이터 작성하기
  2. 실제 데이터 획득하기
  3. 예상 데이터와 실제 데이터 비교해 검증하기

작성한 코드가 테스트를 통과하면 지속적인 리팩터링으로 코드를 개선합니다. 그러나 테스트를 통과하지 못하면 잘못된 부분을 찾아 고치는 디버깅을 해야합니다.
테스트 코드는 다양한 경우를 대비해 작성합니다. 테스트 케이스는 성공할 경우뿐만 아니라 실패할 경우도 고려해야 합니다.

이를 기반으로 한 개발 방법론인 테스트 주도 개발(TDD)가 개발의 핵심 패러다임으로 자리 잡고 있습니다.

테스트 코드 작성하기

애노테이션 이용

@SpringBootTest: 해당 클래스를 스프링 부트와 연동해 테스트를 수행하겠다고 선언한 것으로, 테스트 코드에서 스프링 부트가 관리하는 다양한 객체를 주입받을 수 있다.
@Autowired: ArticleService 클래스를 테스트 하기위해 articleService(외부 객체)를 필드 주입 받는다.

더미데이터 입력

먼저, 더미 데이터를 넣어줄 data.sql 파일을 생성한다.
(스프링 부트는 resources 폴더 아래에 위치한 data.sql 파일을 자동으로 실행해준다.)

application.yml 파일을 아래와 같이 설정해준다.(2023-10-17 기준)

조회 기능 테스트

전체 조회

단건 조회

생성 기능 테스트


@Transactional
여러 테스트 케이스를 한번에 실행하면 테스트 케이스가 롤백되지 않아 전체 조회 테스트 코드가 오류가 나는 것을 알 수 있다. 이를 해결하기 위해서는 create 테스트 코드가 끝난 후 변경된 데이터를 처음으로 되돌리도록 @Transactional을 선언해주어야 한다.

profile
백엔드 개발자 준비중

0개의 댓글