TEST2 테스트하기 쉬운 코드 만들기(+ 테스트 작성범위) 우아한 테크코스를 진행하면서 1번째 미션에 받은 피드백을 토대로 기록하고자 한다. 1. 랜덤 번호 테스트첫 번째로 피드백을 받은 것은 아래와 같다Q. “로또에 필요한 List numbers 로또 번호들을 랜덤으로 생성하는 메소드를 테스트를 어떻게 해야 할 것인가?” 아래의 코드를 예로 들었다. 사람들은 보통 위 코드를 테스트하기 어렵다고 한다. 하지만, 어떤 문제점을 가졌기에 테스트가 어려웠을까? 코드를 보면 Random클래스로 랜덤 번호를 생성하고 있다. 단순히 랜덤한랜덤 한 요소가 있으니까 테스트가 어렵다고 말하는 것은 부족하다. 덧붙여 말하면 테스트가 어려운 이유는 랜덤 한 요소를 우리가 컨트롤하지 못하기 때문이다. 컨트롤하지 못하는 코드는 우리가 예측하지 못하고, 예측하지 못한다면 테스트 작성이 .. 2025. 2. 15. JPA로 인한 테스트 실패 안녕하세요, 개발자 여러분. 오늘은 JPA를 사용하면서 겪은 재미있는 문제 상황과 그 해결 과정을 공유하고자 합니다. 문제 상황최근 프로젝트에서 JPA를 사용하여 엔티티의 soft delete 기능을 구현했습니다. @SQLDelete 어노테이션을 사용하여 삭제 쿼리를 커스터마이징하고, @SQLRestriction을 통해 삭제된 엔티티를 조회에서 제외하도록 설정했습니다. 그리고 다음과 같은 테스트 코드를 작성했습니다: 예상치 못한 결과테스트를 실행했을 때, 예상과 다른 결과가 나왔습니다. isDeleted() 메서드가 false를 반환한 것입니다. 원인 분석 이 문제의 원인을 분석해보니, 다음과 같은 점들을 놓쳤다는 것을 깨달았습니다:영속성 컨텍스트와 데이터베이스의 불일치: @SQLDelete는 데이.. 2024. 8. 13. 이전 1 다음