개발 공부중

[Spring Boot] JUnit 테스트 클래스 예제 본문

SPRING BOOT

[Spring Boot] JUnit 테스트 클래스 예제

개발자 leelee 2023. 8. 7. 19:06

테스트 코드 작성은 소프트웨어 개발의 중요한 부분이며, 코드의 신뢰성을 보장하는 데 큰 역할을 한다.

아래는 MemberService 인터페이스의 join() 메서드를 테스트하는 JUnit 테스트 클래스의 예제 이다.


 

MemberService.interface

package hello.core.member;

public interface MemberService {

    void join(Member member);

    Member findMember(Long memberId);

}

 

MemberServiceImpl.class

package hello.core.member;

public class MemberServiceImpl implements MemberService{

    private final MemberRepository memberRepository = new MemoryMemberRepository();

    //회원가입을 수행하는 메서드
    @Override
    public void join(Member member) {
        memberRepository.save(member);
    }


    //특정 회원 id에 해당하는 회원정보를 조회하는 메서드
    @Override
    public Member findMember(Long memberId) {
        return memberRepository.findById(memberId);
    }
}

 

MemberServiceTest.class

package hello.core.member;

import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;

public class MemberServiceTest {
    MemberService memberService = new MemberServiceImpl();
    @Test
    void join(){
        //given 이런 환경에서
        Member member = new Member(1L,"memberA", Grade.VIP);

        //when 이렇게 했을 때
        memberService.join(member);
        Member findMember = memberService.findMember(1L);

        //then 이렇게 된다
        Assertions.assertThat(member).isEqualTo(findMember);
    }
}

위의 코드는 MemberService의 join() 메서드를 테스트하는 JUnit 테스트 클래스이다.

@BeforeEach 어노테이션을 사용하여 각 테스트 메서드 실행 전에 MemberServiceImpl의 인스턴스를 생성하는 작업을 수행한다. 그리고 @Test 어노테이션을 사용하여 실제 테스트 코드를 작성한다.

 

테스트 통과 시 실행결과

테스트 코드를 실행하면, 주어진 회원 정보를 회원 가입 메서드를 통해 저장한 후, 저장된 회원을 조회하여 예상 결과와 일치하는지 확인한다. 

 


이렇게 JUnit을 활용하여 코드의 기능을 테스트함으로써 코드 변경 시 예상치 못한 버그를 사전에 찾아내고, 안정성을 높일 수 있다.

 


만약 JUnit을 활용하지 않았다면 아래처럼 하나하나 확인해야한다.

package hello.core;

import hello.core.member.Grade;
import hello.core.member.Member;
import hello.core.member.MemberService;
import hello.core.member.MemberServiceImpl;

//회원 도메인 실행과 테스트
public class MemberApp {

    public static void main(String[] args) {
        MemberService memberService = new MemberServiceImpl();
        //new Member - ctrl + alt + v
        Member member = new Member(1L, "memberA", Grade.VIP);
        memberService.join(member);

        //가입 확인하기
        Member findMember = memberService.findMember(1L);
        System.out.println("new member = " + member.getName());
        System.out.println("find Member = " + findMember.getName());
    }
}

//진짜 순수한 자바로 개발

실행 화면

 

'SPRING BOOT' 카테고리의 다른 글

[IntelliJ] 단위 테스트 생성 방법 (ctrl + shift + t )  (0) 2023.08.17
Comments