
jpa 설정을 완료하고 CRUD 를 실습해보자. Member table을 만들어주자. 그 다음은 Member class를 만들어주자. package hellojpa; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Member { @Id private Long id; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Long getId() { return id; } public void setId(Long id) { this.id = i..

이번에는 새로운 할인정책을 적용해봅니다. 새로운 클래스를 만들어서 기존의 DiscountPolicy interface를 implement 합시다 이 때 변경된 할인정책을 적용하려면 OrderServiceImpl 의 discountPolicy를 변경해야한다. 그런데 구체적 구현 클래스를 변경해주고 있다. 추상클래스 혹은 인터페이스에 의존하게 작성해서 OrderServiceImpl에 변경되는 사항이 없도록 하자. memberRepository 와 discountPolicy 를 생성자를 통해 의존성 주입을 하자. 그리고 실제 실행해줄 app에서 어떤 구현체를 쓸지 넣어주는 AppConfig 파일을 생성한다. memberService나 orderService를 구현할 때 어떤 구현체를 쓸지 조금더 명확하게 보이..

assertThatThrownBy(() -> "abc".charAt(3)).isInstanceOf(IndexOutOfBoundsException.class); assertThatExceptionOfType(IndexOutOfBoundsException.class).isThrownBy(() -> "abcd".charAt(5)); 자바로 어떤 함수를 작성하고 테스트를 해야 하는 경우가 있다. 간단히 예시를 들고 왔다. 이미 있는 함수로 간단히 테스트코드 작성하는 법을 알아보자. String의 split이 어떻게 동작하는가를 테스트한다. assertThat 이후 특정 값이라면 isEqualTo, 배열이 리턴된다면 contains 를 쓸 수도 있지만 containsExactly 를 통해 모든 배열값이 순서대로 ..