최대 1 분 소요

문제 상황

일부 테스트 코드를 돌려보는 도중 에러가 발생했다. querydsl 쿼리에서 fetchOne()을 쓰고 있었는데 해당 함수를 호출하니
다음 에러가 발생했다.

Caused by: jakarta.persistence.NonUniqueResultException at MallServiceTest.java:36

해결 방법

NonUniqueResultExceptionfetchOne()을 호출했을 때 쿼리에 해당되는 데이터가 2건 이상있으면 발생하는 에러다.
테스트 데이터는 분명 1개만 넣어서 문제가 없을거라 생각했는데 테스트 클래스들을 자세히 보니 이전 테스트가 끝났을 때 롤백해주는
로직이 없어서 이전 테스트 데이터가 그대로 남아있는 상태라 에러가 발생한 것이었다. 모든 테스트 함수가 다른 테스트 함수에 영향을
주지 않도록 @Transactional을 붙여줬다.

@Transactional
@SpringBootTest
class MallServiceTest { ... }

카테고리:

업데이트:

댓글남기기