강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

이지후님의 프로필 이미지
이지후

작성한 질문수

[개념은 호옹~, 실습 빡] 스프링 부트, 입문!

22 댓글 엔티티와 리파지터리(댓글 달기 전, 테스트 한번 하쉴?)

21강 자율 과제중 update

작성

·

64

0

 @Test
    @Transactional
    void update_성공_존재하는_id와_title만있는_DTO() {
        //예상
        Long id = 1L;
        String title ="title";
        ArticleForm dto = new ArticleForm(id, title,null);
        Article expected = new Article(id, title,"1111");

        //실제
        Article article = articleService.update(id, dto);
        //비교
        assertEquals(expected.toString(),article.toString());
    }

자율과제로 내주신 Test를 진행하다가 궁금한 점이 생겼습니다.
web에서 수정을 할 때는


2025-02-12 17:36:48.037 DEBUG 960 --- [nio-8080-exec-4] org.hibernate.SQL :

update

article

set

content=?,

title=?

where

id=?

2025-02-12 17:36:48.039 TRACE 960 --- [nio-8080-exec-4] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [댓글]


위 와 같이 update 구문을 확인 할 수있었는데요.

Test를 진행 할때는 해당 구문의 log를 볼 수가 없었습니다.

그렇다면 위에 코드로 작성한 구문이 잘 못된 걸까요? 아니면
test시에는 구문이 안보이는건가요?

답변 2

0

홍팍님의 프로필 이미지
홍팍
지식공유자

@Transactional이 적용된 테스트는
테스트 후 바로 롤백이 진행되어
insert 및 update 쿼리를 수행하지 않습니다.

@Rollback(false)를 추가하여
로그를 확인해보세요.

이지후님의 프로필 이미지
이지후
질문자

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 이지후님.

테스트를 진행할 때, 실제 데이터베이스와의 상호 작용을 로그로 확인하기 어려운 경우가 있습니다. 특히, 테스트 환경에서는 특수하게 설정되지 않으면 로그가 나타나지 않을 수 있습니다.

테스트 환경에서 SQL 로그를 확인하기 위해 다음과 같은 설정을 진행해 보실 수 있습니다:

  1. application-test.properties 또는 application.yml에 로그 세팅 추가:

    spring.jpa.show-sql=true
    spring.jpa.properties.hibernate.format_sql=true
    logging.level.org.hibernate.sql=debug
    logging.level.org.hibernate.type=trace
    
  2. 위 설정을 통해 테스트 환경에서도 SQL이 어떻게 동작하는지 더 명확하게 볼 수 있습니다.

  3. 참고로, @Transactional 어노테이션이 걸린 테스트 메소드는 기본적으로 롤백되기 때문에, 변경사항이 실제 DB에 반영되지 않으며, 로그에서도 이를 보지 못할 수 있습니다.

아래 내용을 참고하시어 디버깅 및 테스트 환경 설정을 진행하시면 도움이 되실 것입니다. 추가적으로 같은 강의에서 관련 질문이 있을 수 있으니 “@Transactional 어노테이션 위치에 관하여 질문합니다 🙂” 게시물도 함께 확인해보시는 것을 추천드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이지후님의 프로필 이미지
이지후

작성한 질문수

질문하기