seong
Junit 통합 테스트 하기 위한 팁 본문
통합 테스트를 위한 어노테이션
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) // 통합테스트
통합 테스트를 위한 팁
1. 테스트용 yml파일이 따로 필요하다.
2. H2 DB를 사용할 시 H2는 MariaDB를 지원하지 않기 때문에 DB설정이 따로 필요하다(MySQL사용)
spring:
datasource:
url: jdbc:h2:mem:test;MODE=MYSQL # MariaDB 가 안됨
driver-class-name: org.h2.Driver
username: sa
password:
h2:
console:
enabled: true
3. 테스트 진행시 메서드마다 테스트 격리가 필요하다.
4. SpringBoot 통합 테스트는 Rollback가 자동으로 되지않는다.
5. 4번을 해결하기 위해서 truncate 전략을 사용한다.(중요)
@Sql("classpath:truncate.sql")
6. truncate를 사용하기 위해선 이전에 미리 FK를 모두 날려주어야한다. (이것도 DB에서 따로 할 필요 x)
아래 처럼 파일을 생성후 FK가 걸려있는 테이블을 작성.
SET REFERENTIAL_INTEGRITY FALSE;
truncate table comment;
truncate table board;
truncate table users;
SET REFERENTIAL_INTEGRITY TRUE;
'Junit' 카테고리의 다른 글
Junit - Dao 테스트 (0) | 2022.10.24 |
---|---|
Junit이란? 메서드 테스트 해보기 (0) | 2022.09.29 |
VsCode 설정 - 저장시 자동정렬, Intellij 키보드 설정 적용시키기 (0) | 2022.09.29 |
Junit 프로젝트 실행 시키기 (2) - 기본 셋팅 (0) | 2022.09.29 |
Junit - Vscode로 STS 프로젝트 실행에 필요한 확장프로그램 설치(1) (0) | 2022.09.29 |