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

csy6219님의 프로필 이미지
csy6219

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

Cannot resolve method 'findById' in 'MemoryMemberRepositoryTest'

작성

·

689

·

수정됨

1

현 시점에서 강의 들을 때 부트3.0이상에 자바17 쓰라고 안내되어있어 현재 환경은 이렇습니다

스프링부트 3.0.6

java17

인텔리제이 커뮤니티 23.1.1

 

컴파일 에러라 run을 해볼 수 없는 상황입니다ㅠㅜ

검색하면서 IntelliJ 에서 InvalidateCaches는 해봤는데 안됩니다ㅠㅠ

 

컴파일 에러메세지

Cannot resolve method 'findById' in 'MemoryMemberRepositoryTest' 

 

강의와 다른 특이점

강의에서 junit 임포트 하라고 할 때도 임포트가 안뜨고 classpath 설정하라고 추천이 떴고

이때 junit 5.8.1로 추천하는 걸로 하고 나서 import가 뜨길래 이렇게 junit 임포트했습니다

 

 

@Test
public void save(){
Member member = new Member();
member.setName("spring");

repository.save(member);
Member result = repository.findById(member.getId()).get(); // 검증하기 findById로 // get()으로 값을 바로 꺼내는 방법은 좋지 않으니 테스트코드에서는 상관x
System.out.println("result = " + (result == member)); // 글자로 보는 건 불편하니 Assertions라는 기능이 있음
Assertions.assertEquals(member,result); // .assertEquals(기대되는값expected, 실제결과actual) 파라미터

 

 

 

답변 1

1

필드에 생성된 리포지토리가 리포지토리가아니라 RepositoryTest객체로 선언되어있네요.

@Autowired

MemberRepository memberRepository로 바꿔주세요

그리고 테스트 클래스 위에
@SpringBootTest도 꼭 선언해주세요

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

오 감사합니다!!
이런 바보 같은 실수를...ㅠㅜ

컴파일 에러는 잡혔는데

 

런하니까 첫에러가

Internal Error occurred.

org.junit.platform.commons.JUnitException: TestEngine with ID 'junit-jupiter' failed to discover tests

 

구글링 중인데 그래들이랑 junit 자체가 처음이라 어렵네요ㅠㅜ

인텔리제이도 쓴 지 얼마 안되서

 

아마 입문편이 junit5를 사용할텐데 임포트 패키지보면 주피터로 되어있네요.
import org.junit.jupiter.api.Assertions 라인을 지워주시고


import org.assertj.core.api.Assertions;

이걸로 바꿔주세용

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

감사합니다 해결됐어요!!^^

csy6219님의 프로필 이미지
csy6219

작성한 질문수

질문하기