스프링 학습 - 입문 4

김연수·2023년 2월 18일
0

spring study

목록 보기
4/7

회원 관리 예제 - 웹 MVC 개발

순수 JDBC

build.gradle파일에 라이브러리 추가

implementation 'org.springframework.boot:spring-boot-starter-jdbc'
runtimeOnly 'com.h2database:h2'

resources/application.properties 파일에 접속정보 추가

spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa

코드는 참고만 하자

스프링의 DI를 이용하면 설정변경 만으로 구현클래스를 변경 할 수 있다.

Test 클래스에 @Transactional 을 붙여주면
테스트 메서드가 트랜잭션으로 감싸지며, 메서드가 종료될 때 자동으로 롤백된다.

@SpringBootTest
스프링 컨테이너와 테스트를 함께 실행한다.
실제 어플리케이션을 자신의 로컬 위에 올려서 포트 주소가 Listening 되어지고, 실제 Database와 커넥션이 붙어지는 상태에서 진행되는 Live 테스트 방법이다

@WebMvcTest
Controller(API) Layer만을 테스트하기 적합한 테스트 어노테이션으로 전체 어플리케이션을 실행하는 것이 아닌 Controller만을 로드하여 테스트를 진행 할 수 있는 아주 일목요연한 테스트방법이다

언뜻보면 두 테스트간의 차이는 전체 어플리케이션을 띄운다는 점과 일부 Controller만을 띄운다는 점으로 보여지는데, 목적으로만 본다면 이 점이 가장 핵심이면 어플리케이션의 규모가 커지게 되는 경우 테스트시간이 그만큼 길어지기 때문에 신규 기능이나 버그 패치 등 일부기능만을 테스트하고자 할 때는 WebMvcTest가 적당하다고 볼 수 있다

profile
코린이

0개의 댓글