서비스 오픈 전에 갑자기 할인 정책이 변경된다면!?
이번에는 주문한 금액의 %를 할인해주는 정률 할인을 개발해보자.
테스트 만들기


package hello.core.discount;
import hello.core.member.Grade;
import hello.core.member.Member;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class RateDiscountPolicyTest {
RateDiscountPolicy discountPolicy = new RateDiscountPolicy();
@Test
@DisplayName("VIP는 10% 할인이 적용되어야 한다")
void vip_o(){ //vip는 적용되어야 한다.
//given
Member member = new Member(1L, "memberVIP", Grade.VIP);
//when
int discount = discountPolicy.discount(member, 10000);
//then
org.assertj.core.api.Assertions.assertThat(discount).isEqualTo(1000);
}
}
테스트 코드 작성

@DisplayName이 잘 실행된다.
성공 테스트가 잘 실행되는 것도 중요하지만 실패 테스트도 꼭 만들어봐야 한다.
@Test
@DisplayName("VIP가 아니면 할인이 적용되지 않아야 한다.")
void vip_x(){
//given
Member member = new Member(2L, "memberBASIC", Grade.BASIC);
//when
int discount = discountPolicy.discount(member, 10000);
//then
org.assertj.core.api.Assertions.assertThat(discount).isEqualTo(1000);
}
