Test용 더미 데이터를 입력하는 방법은 여러가지이다.
그 중 한 가지 방법은 미리 작성해놓은 Sql 파일을 불러오는 것이다.
PostServiceTest class에
@Sql(script = "/파일_위치", excutionPhase = ExecutionPhase.BEFORE_TEST_METHOD)
를 작성해 준다.
ExcutionPhase.BEFORE_TEST_METHOD 는 매 TEST 메서드가 실행되기 전에 지정한 Sql 파일이 실행된다.
Sql을 불러오는 타이밍은 총 4가지가 있다.
BEFORE_TEST_CLASS,
AFTER_TEST_CLASS,
BEFORE_TEST_METHOD,
AFTER_TEST_METHOD;@Sql(script = "/clear.sql", excutionPhase = ExecutionPhase.AFTER_TEST_METHOD)
clear.sql 을 각 메서드가 실행되고 난 후에 실행시켜 데이터를 초기화 할 수 있다.
혹은
@Sql(script = "/PostService.sql", excutionPhase = ExecutionPhase.BEFORE_TEST_CLASS)
@Transactional
클래스가 생성되기 전에 sql 파일을 실행하고, Transactional 을 통해 각 테스트에서 데이터가 롤백되어 데이터를 원래 상태로 되돌릴 수 있다.
이를 통해 테스트 환경을 준비할 수 있다.
