1. test 코드가 아닌 검증 방법
public class MemberServiceTest {
public static void main(String[] args) {
MemberService memberService = new MemberServiceImpl();
Member member = new Member(1111L, "member1", Grade.VIP);
memberService.join(member);
Member findMember = memberService.findMember(1111L);
System.out.println("member = " + member.getName());
System.out.println("findMember = " + findMember.getName());
}
}
위와 같이 test 코드로 테스트를 하지 않는 경우 main을 활용해 직접 값들이 같은지 비교하여 확인해야 한다.
2. test 코드로 변경
아래와 같이 "어떤 것이 주어졌을 때(given)", "무언가를 하면(when)", "이렇게 된다(then)"를 지켜서 test 코드를 작성할 수 있다.
public class MemberServiceTest {
MemberService memberService = new MemberServiceImpl();
@Test
void join() {
// given (이런 것이 주어졌을 때)
Member member = new Member(1111L, "member", Grade.VIP);
// when (아래와 같이 진행하면)
memberService.join(member);
Member findMember = memberService.findMember(1111L);
// then (이렇게 된다)
Assertions.assertThat(member).isEqualTo(findMember);
}
}
아래는 다른 테스트 코드 예시다.
public class OrderServiceTest {
MemberService memberService = new MemberServiceImpl();
OrderService orderService = new OrderServiceImpl();
@Test
void createOrder() {
// given
Member member = new Member(1111L, "member", Grade.VIP);
// when
memberService.join(member);
Order order = orderService.createOrder(member.getId(), "item", 10000);
// then
Assertions.assertThat(order.getDiscountPrice()).isEqualTo(1000);
}
}
'BackEnd > Spring' 카테고리의 다른 글
[Spring] IoC, DI, 컨테이너 (0) | 2023.08.20 |
---|---|
[Spring] DIP 위반 문제 해결 (DI의 등장) (0) | 2023.08.20 |
[Spring] 좋은 객체 지향 설계의 5가지 원칙 (SOLID) (0) | 2023.08.17 |
[Spring] 좋은 객체 지향 프로그래밍 (0) | 2023.08.09 |
[Spring] 스프링이란? (0) | 2023.08.08 |