Spring | Test들을 독립적으로 만들려면?

minjjai·2022년 11월 21일
0

5개월 간의 프로젝트를 마치고 그간의 경험들을 가지고 나만의 블로그 사이트를 만들고 있다. 그 과정에서 TDD방식을 사용한다. TDD에서 테스트 코드들은 모두 독립적이어야 한다. 한 테스트 클래스 안의 각각의 테스트들을 독립적으로 만들 방법을 찾았다. 여러 방법들이 있지만, 난 BeforeEach, AfterEach, Rollback을 사용할 것이다.

Code

코드는 아주 간단하다.

@Autowired
private PlatformTransactionManager transactionManager;


TransactionStatus status;

@BeforeEach
void beforeEach() {
	// 트랜잭션 시작
	status = transactionManager.getTransaction(new DefaultTransactionDefinition());
}

@AfterEach
void afterEach() {
	// 트랜잭션 롤백
	transactionManager.rollback(status);
}

이렇게 추가해주기만 하면 테스트 코드의 각각의 단위에 대해서 테스트가 시작할 때 트랜잭션을 시작하고, 해당하는 하나의 테스트가 끝나면 트랜잭션을 롤백하여 다음 테스트 데이터에 영향이 없도록 한다.

PlatformTransactionManager와 TransactionStatus는 깊게 다루지는 못했지만, 트랜잭션을 다루기 위한 것 같다.

profile
BackEnd Developer

0개의 댓글