less than 1 minute read

스프링 테스트시 @Transactional 어노테이션이 있으면 테스트 후 롤백을 한다.

코드는 아래와 같다.


@SpringBootTest
@Transactional
class DefaultTests {

    @Autowired
	private EmployeeRepository repository;

    @Test
    void save() {
        Employee employee = Employee.builder().email("test@test.co.kr").password("1234").build();
        repositoy.save(employee);
    }
}


그래서 테스트 후 디비에서 저장된 데이터를 확인할 수 없다.

이렇게 테스트 후 롤백되는 것을 원하지 않을 경우 @Rollback 어노테이션을 사용하여 롤백을 막을 수 있다.

@SpringBootTest
@Transactional
class DefaultTests {

    @Autowired
	private EmployeeRepository repository;

    @Test
    @Rollback(false)
    void save() {
        Employee employee = Employee.builder().email("test@test.co.kr").password("1234").build();
        repositoy.save(employee);
    }
}

=끝=

Leave a comment