테스트 케이스를 만들고 있다
테스트 하나를 실행하면 그 흔적이
서비스중인 테이터베이스에 그대로 남는다
언제 어떤구현부를 테스트 했는지 알수도 있겠지만
서비스와 목적이 맞지않는 데이터가 쌓이는것이 보기 좋지않았다
그래서 테스트 케이스가 돌아가는 테스트용 데이터 베이스를하나 만들어 줬다
spring boot 에는 내장 데이터 베이스H2가 있어서
테스트에 연동하기 적합했다
테스트가 끝나면 데이터도 같이 날아가니까 알맞은 선택이라 생각했다
기존의 데이터 베이스를 연동하는것 처럼 properties로 설정해준다

이러면 연동이 끝난것이고
내 서비스용 DB와 같은 구조의 스키마를 만들어줘야 한다
테스트코드의 일부는 이미 완성해서 몇회 돌려봤기때문에
테스트 DB의 환경에서 테스트코드가 돌아가기만 한다면
실제 서비스DB와 구조가 동일 하다는것이다
내가 사용하는 MySQLWorkbench에는
데이터베이스구조를 sql로 뽑을수 있는 기능이 있다

간단한 구조지만 뽑을수 있는건 뽑아야
구조에 차이가 없을것같아서 뽑았다
대부분 주석, 설명이고 간단한 테이블이여서
필요한 정보는 10줄미만 이다

태스트 코드의 @BeforEach/에 관련 테이블의sql을 넣어주고
@AfterEach에 테이블을 Drop시키면
각각의 테스트코드가 실행되고 끝나면서 관련 테이블이 생성,삭제 되기때문에
테스트코드 각각의 데이터 중돌을 피할수 있고
실서비스의 DB와 상관없이 테스트를 진행할수 있다

'걸어서 개발 속으로' 카테고리의 다른 글
| 내장DB 커스텀 함수 (0) | 2023.05.31 |
|---|---|
| test code (0) | 2023.05.26 |
| 내 서비스에 로그 적용 (1) | 2023.05.06 |
| 로그 남기기 (0) | 2023.05.03 |
| LFG 배포 자동화 (0) | 2023.03.26 |
댓글