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

jeong정재인님의 프로필 이미지
jeong정재인

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

TxBasicTest

작성

·

271

0

TxBasicTest에서

proxyCheck에서 테스트를 돌리면 에러가 나옵니다

기대값은 true인데 false가 나온다고합니다.

 

package hello.springtx.apply;

import lombok.extern.slf4j.Slf4j;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.aop.support.AopUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.transaction.support.TransactionSynchronizationManager;

import static org.assertj.core.api.Assertions.assertThat;

@Slf4j
@SpringBootTest
public class TxBasicTest {

    @Autowired
    BasicService basicService;

    @Test
    void proxyCheck(){
        log.info("aop class={}", basicService.getClass());
        assertThat(AopUtils.isAopProxy(basicService)).isTrue();
    }

    @TestConfiguration
    static class TxApplyBasicConfig{
        @Bean
        BasicService basicService(){
            return new BasicService();
        }
    }



    @Slf4j
    static class BasicService{
        public void tx(){
            log.info("call tx");
            boolean txActive = TransactionSynchronizationManager.isActualTransactionActive();
            log.info("tx active={}", txActive);
        }

        public void nonTx(){
            log.info("call nonTx");
            boolean txActive = TransactionSynchronizationManager.isActualTransactionActive();
            log.info("nonTx active={}", txActive);
        }
    }
}

답변 2

0

안녕하세요. jeong정재인님, 공식 서포터즈 코즈위버입니다.

스스로 잘 해결하셨습니다 :) 

강의 수강 중 강의 관련 궁금한 사항은 언제든 질문 남겨주세요^^


0

@Transactional을 붙이지 않아서 오류가 발생한것같습니다.

해결하였습니다.

jeong정재인님의 프로필 이미지
jeong정재인

작성한 질문수

질문하기