작성
·
1.2K
·
수정됨
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
테스트 하려고 하면 자꾸 이렇게 뜨네요..ㅠ
package jpabook.jpashop.service;
import jpabook.jpashop.domain.Member;
import jpabook.jpashop.repository.MemberRepository;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
import static org.junit.jupiter.api.Assertions.*;
@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
class MemberServiceTest {
@Autowired MemberService memberService;
@Autowired
MemberRepository memberRepository;
@Test
public void 회원가입() throws Exception {
//given
Member member = new Member();
member.setName("kim");
//when
Long saveId = memberService.join(member);
//then
assertEquals(member, memberRepository.findOne(saveId));
}
@Test
public void 중복_회원_예제() throws Exception{
//given
//when
//then
}
}
package jpabook.jpashop.domain;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
@Entity
@Getter
@Setter
public class Member {
@Id @GeneratedValue
@Column(name = "member_id")
private Long id;
private String name;
@Embedded
private Address address;
@OneToMany(mappedBy = "member")
private List<Order> orders = new ArrayList<>();
}
package jpabook.jpashop.service;
import jpabook.jpashop.domain.Member;
import jpabook.jpashop.repository.MemberRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Transactional(readOnly = true)
public class MemberService {
@Autowired
private MemberRepository memberRepository;
//회원 가입
@Transactional
public Long join(Member member){
validateDuplicateMember(member);
memberRepository.save(member);
return member.getId();
}
private void validateDuplicateMember(Member member) {
//EXCEPTION
List<Member> findMembers = memberRepository.findByName(member.getName());
if (!findMembers.isEmpty()){
throw new IllegalStateException("이미 존재하는 회원입니다.");
}
}
//회원 전체 조회
public List<Member> findMembers() {
return memberRepository.findAll();
}
public Member findOne(Long memberId){
return memberRepository.findOne(memberId);
}
}
아 수정해서 올렸습니다!
/Users/changha/Documents/Infrun/jpashop/src/main/java/jpabook/jpashop/service/MemberService.java:24: error: cannot find symbol
return member.getId();
^
symbol: method getId()
location: variable member of type Member
답변 2
0
정확한 것은 MemberService의 코드를 올려주셔야 확실하겠지만
오류 내용만 보고 판단했을 때는 Member의 import 가 잘못되어 getId()를 못찾은 것으로 보입니다. Member를 저희가 만든 Member로 import했는지 확인해주시고, 잘 모르시겠다면 MemberService 전체 코드를 보여주시면 감사하겠습니다 :)
일단 강의 자료 기준으로 생성자 주입을 아직 반영하지 않으신 것 빼고는 별다른 점은 없어보입니다. 번거로우시겠지만 롬복이 기능하지 않고 있나 싶기도 해서 intellij 설정에 들어가서 annotation process로 검색하셔서 해당 기능을 켜주고 다시 테스트해주시겠습니까? 그래도 안된다면 직접 제가 코드를 봐야 될 것 같습니다 :)
전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
구글 드라이브 업로드 방법 링크
주의: 업로드시 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 실행 방법을 알려주세요.
2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.
감사합니다.
https://drive.google.com/file/d/1_Yz3gsnExhOwdSj3DDR42eB0gzJXmifL/view?usp=sharing
test폴더의 MemberServiceTest 클래스에 가서 회원가입 메서드를 실행시킵니다.
회원가입 메서드를 실행시키면 위와 같은 에러가 뜹니다
감사합니다!
보내주신 프로젝트 코드 살펴봤습니다.
MemberServiceTest 를 통과하게 만들기 위해서 2가지가 필요했습니다.
1) build.gradle 수정
2) 루트 패키지에 있는 MemberRepository 삭제
2)은 그냥 삭제하시면 될 것 같고
1) 에서 lombok 추가를 강의자료와는 다른 방법으로 해주고 계셨고, 그로 인해 테스트를 위한 컴파일 시 @Getter에서 getter 메서드를 만들어내지 못해 해당 에러가 계속 발생 중이었습니다.
변경 전
변경 후
이렇게 바꿔주시고, 루트 패키지에 존재하는 MemberRepository를 삭제해주시면 될 것 같습니다.
MemberService import부분도 member제대로 돼있는데 왜 이러는지 잘 모르겠네요 ㅠ
강의 초반부에 테스트 했을 때도 이 오류 떠서 그냥 테스트는 안하고 applcation Run시키니까 작동은 됐습니다