인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

heoyejin9178님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

JPA와 DB 설정, 동작확인

RunWith

작성

·

142

0

image.png

image.png

프로젝트 생성부분의 마지막 강의 수강중이고, 위와 같이 코드를 작성했을 때 다음과 같은 오류가 납니다

https://drive.google.com/file/d/1g1uPQj8hZvNmWr3u9NBwMTuI_NOZWSKC/view?usp=sharing

프로젝트 파일도 같이 첨부합니다

image.png

답변 2

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. heoyejin9178님

스프링 부트 3.0 이상을 사용하면 @Runwith를 제거하고 사용하시면 됩니다.

다음 코드를 복사해서 사용해보시겠어요?

package jpabook.jpashop;

import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.transaction.annotation.Transactional;

@SpringBootTest
public class MemberRepositoryTest {
    
    @Autowired MemberRepository memberRepository;
    
    @Test
    @Transactional
    public void testMember() throws Exception {
        //given
        Member member = new Member();
        member.setUsername("memberA");

        //when
        Long saveId = memberRepository.save(member);
        Member findMember = memberRepository.find(saveId);

        //then
        Assertions.assertThat(findMember.getId()).isEqualTo(member.getId());
        Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername());
    }
  
}

관련해서 메뉴얼에 업데이트를 해두어야겠네요 🙂

감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

@RunWith 어노테이션 관련해서 문제가 발생하여 질문 주셨네요. @RunWith 어노테이션은 JUnit 4에서 사용되는 것으로, 테스트 클래스를 어떻게 실행할지를 지정하는데 사용됩니다. 주로 SpringRunner.class와 함께 사용되어 스프링 컨텍스트를 로드하여 통합 테스트를 진행할 수 있게 지원합니다.

귀하의 질문에서 보여지는 IntelliJ IDEA의 오류들은 아마도 JUnit 라이브러리를 프로젝트에 제대로 추가하지 않아 발생하는 것으로 보입니다. 문제를 해결하려면 프로젝트의 빌드 파일에서 JUnit 라이브러리를 추가하거나 설정을 확인해야 합니다.

아래는 기존 질문에 대한 유사한 답변을 참고할 수 있는 링크입니다:

  1. “MemberRepositoryTest와 logging에 관련 질문입니다.”

    • 이 게시물에서는 JUnit 및 프로젝트 설정 관련한 문제를 다루고 있습니다. JUnit 5에서는 @ExtendWith(SpringExtension.class)를 사용하는 점 등도 다루고 있어, 최신 설정에 도움이 될 것입니다.
  2. “프로젝트 생성 후 JpashopApplicationTests 파일 어노테이션”

    • 여기에서는 JUnit 5에서의 변경점과, @RunWith 대신 @ExtendWith를 사용하는 방법에 대해 설명하고 있습니다.

위 링크의 설명을 참조하시고, JUnit의 적절한 버전을 프로젝트에 포함시켜 보시기 바랍니다. 만약 문제가 계속된다면, Google Drive에 입력된 프로젝트 파일을 첨부해주신 링크를 통해 문제를 재현해 볼 수 있도록 자료를 제공해 주시면 더욱 정확한 해결 방법을 찾을 수 있을 것입니다.

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