테스트코드와 ORM

풀떼기·2023년 11월 7일

SpringBootLearn

목록 보기
3/8

테스트 코드

스프링부트에 테스트 디렉토리가 이미 있는 것은 알고 있었지만, 실제로 개발을 할 때는 급한 마음에 제대로 사용해보지 못했다.
지금이라도 조금씩이나마 습관을 들여보려고 한다.

현재 학습하는 교재에서는 테스트 코드로 given-when-then 패턴을 사용한다.
테스트 실행을 준비하는 단계, 테스트를 진행하는 단계, 테스트 결과를 검증하는 단계로 나뉜다.
테스트 도구로는 JUnit과 AssertJ를 가장 많이 사용한다.

JUnit

자바 언어를 위한 단위 테스트 프레임워크.

  • 테스트 방식을 구분할 수 있는 애너테이션 제공
  • @Test 애너테이션으로 메서드를 호출할 때마다 새 인스턴스를 생성, 독립 테스트 가능
  • 예상 결과를 검증하는 어설션 메서드 제공
  • 사용방법이 단순하며 테스트 코드 작성 시간이 적음
  • 자동 실행, 자체 결과를 확인하고 즉각적인 피드백을 제공

AssertJ

JUnit과 함께 사용해 가독성을 높여주는 라이브러리.

MockMvc

애플리케이션을 서버에 배포하지 않고도 테스트용 MVC환경을 만들어 요청 및 전송, 응답 기능을 제공하는 유틸리티 클래스. 컨트롤러를 테스트할 때 사용된다.


오류

테스트 코드 작성 중 Lombok 관련 코드에 빨간 줄이 나타났다.
분명 @AllArgsConstructor와 @Getter가 적용되어 있는데 말이다.
코드상으론 문제가 없으니 실행을 돌려 보았는데... 어라? 오류가 안난다?
찾아보니 IntelliJ에서 Lombok Plugin을 설치하지 않아 생긴 문제같다.
플러그인을 설치하니 해결되었다.


ORM(object-relational mapping)

자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법.
자바에서는 JPA, Hibernate가 표준으로 사용된다.

영속성 컨텍스트

엔티티를 관리하는 가상의 공간.
1차 캐시, 쓰기 지연, 변경 감지, 지연 로딩이라는 특징이 있다.

헷갈리지 말 것

  • ORM은 객체와 데이터베이스를 연결하는 프로그래밍 기법
  • JPA는 자바에서 RDBMS를 사용하는 방식을 정의한 인터페이스(기술 명세)
  • Hibernate는 JPA의 대표적인 구현체로, 자바 언어를 위한 ORM 프레임워크
  • Spring Data JPA는 JPA를 쓰기 편하게 만들어놓은 모듈
profile
주니어 백엔드 개발자입니다.

0개의 댓글