inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

MemberService 테스트시 `@Transaction`을 붙였을 때와 안 붙였을 때 차이

134

kyuwon lee

작성한 질문수 1

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요 강의를 보면서 궁금한게 생겼는데 해결되지 않아 질문드립니다.
```java
    @Test
public void 회원가입() throws Exception {
//given
Member member = new Member();
member.setName("kim");

//when
Long saveId = memberService.join(member);

//then
// em.flush();
assertThat(memberRepository.findOne(saveId)).isEqualTo(member);
}
```
 
해당 코드 실행시 `@Transaction`애너테이션이 붙어 있을 경우는 테스트가 정상적으로 통과되지만 `@Transaction` 애너테이션이 붙어 있지 않을 경우 서로 다른 객체라고 테스트가 실패하게 됩니다.
 
org.opentest4j.AssertionFailedError: expected: jpabook.jpashop.domain.Member@21dd91da but was: jpabook.jpashop.domain.Member@7657d29f Expected :jpabook.jpashop.domain.Member@21dd91da Actual :jpabook.jpashop.domain.Member@7657d29f
 
왜 인지 명확하게 모르겠습니다.
 

transaction

답변 1

0

OMG

안녕하세요. kyuwon lee님, 공식 서포터즈 OMG입니다.

단순 조회의 경우 트랜잭션 없이 읽기가 가능하지만,

그 외 데이터 변경 시 트랜잭션 안에서 동작해야합니다.

발생한 상황이 정상입니다.

별도로 테스트에서는 @Transactional을 사용 할 경우 이전 테스트가 이후 테스트에 영향이 가지 않도록 롤백 됩니다.

 

영한님의 강의를 수강 중이시라면 인프런 상단 메뉴의 커뮤니티 탭 보다는

강의의  질문 게시판을 이용해주시면 감사하겠습니다.

 


감사합니다.

프로젝트 구조 관련 질문이 있습니다.

0

66

1

안녕하세요 강사님 질문 있습니다.

0

77

1

bitnami/kafka 말고 다른 이미지를 사용하는 방법 알려주세요.

0

206

2

카프카 질문

1

122

2

안녕하세요. 타임아웃 시간에 관하여 질문있습니다.

1

131

2

분산 시스템 인증/인가 관련 질문 ..

1

96

2

안녕하세요 주문처리에 관하여 질문있습니다 ㅠ ㅁ ㅜ

2

186

2

[데이터 버저닝을 활용한 멱등성 처리] 멱등성 보장을 위한 version 비교 질문

1

135

2

데이터 버저닝 질문

1

126

2

@Transactional선언 메서드 정상동작하는건가요?

1

110

2

영상 편집이 잘못된 것 같아요. (순서가 중간에 계속 바뀜)

0

86

3

혹시 강의자료랑 강의 안에 나오는 pdf와 같은거가요?

1

110

2

트랜잭션 전파 기본 - UnexpectRollbackException 관련 질문

0

146

2

트랜잭션 내부 호출 질문 관련하여 질문있습니다.

0

179

1

InternalService 빈 등록 질문

0

361

1

orderItem에 연결되는 order_id는 어느 시점에서 연결이 되는 걸까요?

0

367

1

DatasourceManager와 JpaTransactionManager 혼용

0

572

2

@Transactional 안에서 외부 서비스 api call 관련 질문있습니다.

0

699

1

"DB 락 - 개념 이해" 강의 관련 질문

4

555

1

트랜잭션

0

248

1

서비스 계층에 트랜잭션 추가 하는 이유

0

402

1

통합 테스트 진행 도중 JdbcMemberRepository Transaction 관련 에러 문의

0

554

1