• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Cannot resolve method 'findById' in 'MemoryMemberRepositoryTest'

23.06.08 23:04 작성 23.06.08 23:09 수정 조회수 468

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

임동현님의 프로필

임동현

2023.06.08

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

@Autowired

MemberRepository memberRepository로 바꿔주세요

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

csy6219님의 프로필

csy6219

질문자

2023.06.09

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

컴파일 에러는 잡혔는데

 

런하니까 첫에러가

Internal Error occurred.

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

 

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

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

 

임동현님의 프로필

임동현

2023.06.09

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


import org.assertj.core.api.Assertions;

이걸로 바꿔주세용

csy6219님의 프로필

csy6219

질문자

2023.06.10

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