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

DaHab님의 프로필 이미지
DaHab

작성한 질문수

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

외부 패키지가 연결이 되지 않는다고 나옵니다.

작성

·

298

0

질문은 총 2개입니다. 이 밑에 있는 사진을 참고해서 질문을 봐주시면 될 것 같습니다.

감사하겠습니다.

2.PNG

 

1. MemoryMemberRepository이 외부 패키지에서 연결이 되지 않는다고 하는데 이 말이 무엇인지 이해가 되지 않습니다. 이 문제를 어떻게 해결하면 좋을까요..?

1.PNG

3.PNG<왼쪽 오류>

hello.hellospring.repository.MemoryMemberRepository is not public in hello.hellospring.repository; cannot be accessed from outside package

 

<오른쪽 오류>

java: hello.hellospring.repository.MemoryMemberRepository is not public in hello.hellospring.repository; cannot be accessed from outside package

 

(혹시 몰라 코드도 함께 올립니다.)

package hello.hellospring.service;

import hello.hellospring.domain.Member;
import hello.hellospring.repository.MemoryMemberRepository;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;

class MemberServiceTest {
    MemberService memberService;
    MemoryMemberRepository memberRepository;

    @BeforeEach
    public void beforeEach() {
        memberRepository = new MemoryMemberRepository();
        memberService = new MemberService(memberRepositorypository);
    }

    @AfterEach
    public void afterEach() {
        memberRepository.clearStore();
    }

    @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("이미 존재하는 회원입니다.");
    }
}

 

  1. memberRepository를 입력했는데 밑에 빨간줄이 뜹니다. 혹시 무엇인가 import를 해주지 않은 것인지 판단되어 ctrl+space를 눌러도 클릭되는 것은 없습니다. 그럼 왜 빨간줄이 떠있는 것인지 궁금합니다.

2.PNG

답변 1

0

안녕하세요. DaHab님, 공식 서포터즈 OMG입니다.
전체 코드를 본게 아니여서 확실하진 않지만

MemoryMemberRepositoryTest 의 문제가 있지 않나 생각합니다.

테스트 패키지에 MemoryMemberRepository 부분도 이상하구요.

image
확인해보시고 해결이 안될 경우 댓글남겨주세요.

MemoryMemberRepository와

MemoryMemberRepositoryTest 클래스를 새로 만들어서 확인해주세요


감사합니다.

DaHab님의 프로필 이미지
DaHab

작성한 질문수

질문하기