[Spring] 서비스 테스트 케이스 작성

·2023년 7월 21일
0

SpringBoot

목록 보기
3/6

이전 강의에서는 Test 어노테이션을 일일이 달았는데,

인텔리제이에서는 게터 세터처럼 자동적으로 테스트 메서드를 껍데기를 만들어주는 단축키가 있다! (Ctrl+Shift+T)

  • 테스트 메서드명은 과감히 한글로 바꿔도 된다.
    실제 서비스할 얘들이 아니기 때문에....

//MemberServiceTest.java

MemberService memberService = new MemberService(memberRepository);
    MemoryMemberRepository memberRepository = new MemoryMemberRepository();

또,MemberService 클래스를 테스트하다보면,
테스트 케이스의 MemberRepository와 MemberService클래스 내에서 new로 생성하는 MemberRespository가 다름을 알 수 있다.

//MemberRepositoryTest.java

class MemberServiceTest {

    MemberService memberService = new MemberService(memberRepository);
    MemoryMemberRepository memberRepository = new MemoryMemberRepository(); //얘랑 위에서 생성한 memberService안에 내제된 memberRepository는 다른 개체임

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

이는 memberservice가 외부에서 생성된 repository를 받아오는 방식으로 생성자를 만들어주면 된다.

//MemberService.java
 private final MemberRepository memberRepository;

    public MemberService(MemberRepository memberRepository) {
        this.memberRepository = memberRepository;
    }
//MemberRepositoryTest.java
MemberService memberService;
    MemoryMemberRepository memberRepository;

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

이러한 외부에서 받아오는 방식을 DI (의존관계 주입 - Dependency Injection)이라 한다.

아 어려워

profile
풀스택 호소인

0개의 댓글