1. 순수한 자바 코드로 테스트 코드 구현
우리는 동적인 테스트를 통해서 구현한 부분에 문제가 없는지 살펴보아야 한다.
그래서 테스트코드를 작성해서 진행하는데 이는 대부분 TEST 디렉토리 안에서 작업이 진행된다.
그렇게 진행을 해야 실제 배포에 Test 코드가 포함되지 않아 문제가 생기지 않기 때문이고 또 다른 진행에 문제가 생기지 않기 때문이다.
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 {
//psvm 치면 아래가 나옴
public static void main(String[] args) {
MemberService memberService = new MemberServiceImpl();
Member member = new Member(1L, "memberA", Grade.VIP);
memberService.join(member);
Member findMember = memberService.findMember(1L);
System.out.println("new findMember = " + member.getName());
System.out.println("find member = " + findMember.getName());
}
}
이는 스프링의 어떠한 도움도 없이 자바코드만으로 작성한 순수한 테스트 코드이다. 이때는 직접 출력을 해가면서 테스트를 진행하지만 이는 프로젝트의 규모가 커지는 등의 문제들이 있을 때 아주 비효율적인 테스트 작업이 되기 때문에 우리는 아예 따로 테스트 작업을 실행해야 한다.
2. Test 코드 작성(Junit을 사용해서..)
package hello.core.member;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
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);
}
}
테스트가 될 곳에 @Test를 사용해 테스트를 진행하는 것이 바람직하다.
테스트 작업에도 테스트 프레임워크가 있는데 우리는 지금 자바로 작업을 진행하고 있어 자바관련 테스트 프레임워크인 Junit을 사용해서 테스트 작업을 진행해야 한다.
Junit이 무엇인지 알고 싶다면 아래의 블로그에 들려 확인해주시길 바랍니다.
새내기 개발자의 JUnit 여행기
이번 글에서는 JUnit 단위 테스트 Framework에 대해 알아봅니다. JUnit은 Java의 단위 테스트에서 빼놓고 이야기하기 어려울 정도로 절대적인 위치를 차지하고 있습니다. 그래서 높은 수준은 아니어도
www.nextree.co.kr
3. 출처
스프링 핵심 원리 - 기본편 - 인프런 | 강의
스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢
www.inflearn.com
'Back-End > Spring' 카테고리의 다른 글
[Spring][스프링 기본편] - 6. 주문과 할인 도메인 개발과 테스트 (0) | 2022.01.13 |
---|---|
[Spring][스프링 기본편] - 5. 주문과 할인 도메인 설계 (0) | 2022.01.13 |
[Spring][스프링 기본편] - 3. 회원 도메인 구현 (0) | 2022.01.13 |
[Spring][스프링 기본편] - 2. 비지니스 요구사항과 회원 도메인 설계 (0) | 2022.01.13 |
[Spring][스프링 기본편] - 1. 객체지향 설계와 스프링 (0) | 2022.01.12 |