Transactional
-
@Transactional 왜 안됨..?카테고리 없음 2022. 8. 6. 15:04
우아한 테크코스 Level3 팀 프로젝트 서비스에서 smtp를 통한 email 인증 기능이 있었습니다. public void sendCodeToValidUser(EmailRequest emailRequest) { String serialNumber = encryptor.encrypt(emailRequest.getEmail()); authService.validateSignUpMember(serialNumber); String authCode = saveAuthCode(serialNumber); sendEmail(emailRequest, authCode); } @Transactional protected String saveAuthCode(String serialNumber) { authCodeReposi..
-
우당탕탕 테스트 격리 트러블 슈팅기카테고리 없음 2022. 8. 1. 13:14
0. 문제 상황 HashtagServiceTest(서비스의 테스트) 코드를 짜던 도중이었습니다. 전체 테스트들을 실행할 시, HashtagServiceTest가 랜덤 확률로 통과하거나 실패하는 상황이 반복되었습니다. 대략 5번 테스트를 실행할 시 1번 꼴로 테스트가 실패했습니다. 막상 HashtagServiceTest만 돌렸을 땐 테스트가 문제없이 통과했습니다. 1. 문제 해결 랜덤한 확률로 테스트가 실패할 때 고려해야 할 부분은 다음과 같습니다. 테스트 메소드의 로직이 잘못되어 순서에 따라 다른 테스트 코드가 영향을 받고 있을 수 있다 테스트 환경이 잘못되어 온전한 초기화가 이뤄지지 않고 있다 둘다 결국 테스트 격리의 문제입니다. 이중 저는 2번, 테스트 환경의 문제라고 판단했습니다. 먼저 실행되는 인..