각 테스트가 서로 독립적으로 실행되도록 보장하는것.
어떤 테스트가 실행되더라도 다른 테스트의 결과나 상태에 영향을 주거나 받지 않아야 한다.
Spring에서 같은 데이터베이스를 사용하는 테스트는 어떻게 격리할 수 있을까?
@DirtiesContext 어노테이션을 사용하면 테스트마다 새로운 애플리케이션 컨텍스트를 로드하여 안전한 격리를 보장
@Sql 어노테이션을 사용하면 테스트 실행 전후에 특정 SQL스크립트를 실행할 수 있다. 이때 TRUNCATE DDL을 사용하여 테이블 자체를 비울 수 있다.
@Transactional 어노테이션을 사용하면 테스트가 실행된 후 트랜잭션을 롤백하여 데이터베이스 상태를 원래대로 유지할 수 있다.
'cs(with 매일메일)' 카테고리의 다른 글
| [260309월] 최종적 일관성이란 무엇인가요? (0) | 2026.03.09 |
|---|---|
| [260306금] SQL 인젝션에 대해 설명해주세요. (0) | 2026.03.06 |
| [260304수] NoSQL데이터베이스의 유형에는 어떤 것들이 있나요? (0) | 2026.03.04 |
| [260303화] 템플릿 메서드 패턴이란 무엇인가요? (0) | 2026.03.03 |
| [260302월] 논리 삭제와 물리 삭제의 차이점은 무엇인가요? (0) | 2026.03.03 |