작성
·
24
0
[질문 내용]
JPA 테스트 코드 오류
============================
CONDITIONS EVALUATION REPORT
============================
Positive matches:
-----------------
AopAutoConfiguration matched:
- @ConditionalOnProperty (spring.aop.auto=true) matched (OnPropertyCondition)
AopAutoConfiguration.AspectJAutoProxyingConfiguration matched:
- @ConditionalOnClass found required class 'org.aspectj.weaver.Advice' (OnClassCondition)
AopAutoConfiguration.AspectJAutoProxyingConfiguration.CglibAutoProxyConfiguration matched:
- @ConditionalOnProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition)
ApplicationAvailabilityAutoConfiguration#applicationAvailability matched:
- @ConditionalOnMissingBean (types: org.springframework.boot.availability.ApplicationAvailability; SearchStrategy: all) did not find any beans (OnBeanCondition)
DataSourceAutoConfiguration matched:
- @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)
- @ConditionalOnMissingBean (types: io.r2dbc.spi.ConnectionFactory; SearchStrategy: all) did not find any beans (OnBeanCondition)
DataSourceAutoConfiguration.PooledDataSourceConfiguration matched:
- AnyNestedCondition 1 matched 1 did not; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.PooledDataSourceAvailable PooledDataSource found supported DataSource; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.ExplicitType @ConditionalOnProperty (spring.datasource.type) did not find property 'type' (DataSourceAutoConfiguration.PooledDataSourceCondition)
- @ConditionalOnMissingBean (types: javax.sql.DataSource,javax.sql.XADataSource; SearchStrategy: all) did not find any beans (OnBeanCondition)
JPA코드를 작성하고 통합 테스트 코드를 작성하니 이와같은 오류가 뜹니다!
테스트 코드는 package hello.hello_spring.service; import hello.hello_spring.domain.Member; import hello.hello_spring.repository.MemberRepository; import jakarta.transaction.Transactional; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @SpringBootTest @Transactional class MemberServiceIntegrationTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test public void 회원가입() throws Exception { //Given Member member = new Member(); member.setName("hello"); //When Long saveId = memberService.join(member); //Then Member findMember = memberRepository.findById(saveId).get(); assertEquals(member.getName(), findMember.getName()); } @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //When memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2));//예외가 발생해야 한다. assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } }이렇게 되어있습니다!
답변 2
0
안녕하세요. 이소민님, 공식 서포터즈 y2gcoder입니다.
위에 첨부해주신 로그는 로깅 레벨을 자세하게 설정해주면 나타나는 로그입니다. 스프링 부트가 자동 설정을 통해서 빈을 등록해준 결과를 REPORT 형식으로 안내해주고 있습니다.
============================
CONDITIONS EVALUATION REPORT
============================
Positive matches:
-----------------
그와는 별개로 테스트 케이스가 실패했다면 IDE 결과에 빨간 표시가 뜨지 않았을까 생각합니다! 빨간 표시가 뜨지 않고 초록색 체크 표시가 떴다면 해당 테스트 는 성공한 것입니다 🙂 만약 빨간 표시가 떴다면
ERROR나 caused by 라는 글자가 포함된 로그를 첨부해주십쇼!
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 이소민님, JPA 테스트 코드 오류에 관한 질문을 주셨군요. 아래 먼저 확인할 수 있는 몇 가지 사항을 안내드리겠습니다.
데이터베이스 설정 확인:
application.properties
또는 application.yml
파일이 올바르게 설정되어 있는지 확인해보세요. 특히 JDBC URL, 사용자 이름, 비밀번호 등이 JPA와 연결될 수 있도록 세팅되어 있어야 합니다.엔티티 클래스 확인:
Member
클래스에 @Entity
와 @Id
가 올바르게 설정되어 있는지 확인하세요. 이러한 설정이 없으면 Hibernate가 적절히 매핑할 수 없습니다.의존성 확인:
build.gradle
이나 pom.xml
에 JPA 및 관련 의존성이 제대로 포함되어 있는지 확인하세요. 예를 들어, spring-boot-starter-data-jpa
와 com.h2database:h2
등이 필요합니다.SpringBoot 테스트 설정:
@SpringBootTest
어노테이션이 올바르게 설정되어 있는지 확인해주세요. 이 어노테이션은 적절히 애플리케이션 컨텍스트를 로드하도록 설정되어야 합니다.유사한 내용을 다루는 다른 질문들도 참고할 수 있습니다. 다음은 추천드리는 링크들입니다.
위 링크들을 통해 여러 사용자들이 직면한 유사한 오류와 해결 방법을 확인하세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
12:19:55.913 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [hello.hello_spring.service.MemberServiceIntegrationTest]: MemberServiceIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
12:19:56.090 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration hello.hello_spring.HelloSpringApplication for test class hello.hello_spring.service.MemberServiceIntegrationTest ; 이렇게 뜹니다!