1. isSameAs() 와 isEqualTo() 와 isInstatnceOf() 비교 1) isSameAs() -> == isSameAs() 는 주소값을 비교하는 메서드다. String a = "apple"; String b = a; // 주소값이 같은지 검증 assertions.assertThat(a).isSameAs(b); 2) isEqualTo() -> equals() 메서드 isEqualTo() 는 대상의 내용 자체를 비교하는 메서드다. String a = "apple"; String b = "apple"; // 1. 내용이 같은지 검증 -> 성공 assertions.assertThat(a).isEqualTo(b); // 2. 주소값이 같은지 검증 -> 실패 assertions.assertTha..
(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 1. 주문과 할인 도메인 설계 - 1. 주문 도메인 협력, 역할, 책임 1) 주문 생성: 클라이언트는 주문 서비스에 주문 생성을 요청한다. - 실무에서는 상품이라는 객체를 만들어서 구현하지만 여기서는 간단하게 구현하기 위해 데이터(회원 id, 상품명, 상품가격)로 보낸다. 2) 회원 조회: 할인을 위해서 회원 등급이 필요하다. 그래서 주문 서비스는 회원 저장소에서 회원을 조회한다. (회원의 등급을 알기 위해서) 3) 할인 적용: 주문 서비스는 회원 등급에 따른 할인 여부를 할인 정책에 위임한다. 4) 주문 결과 반환: 주문 서비스는 할인 결과를 포함한 주문 결과를 반환한다. (참고) 실제로는 주문 데이터를 DB에 저장하지만 여기서..
1. @Test @Test 어노테이션을 붙이면 테스트해야 할 Test메서드다. JUnit5 기준으로 접근제한자가 Default 여도 된다. 2. @BeforeAll @beforeAll 어노테이션을 붙이면 해당 테스트 클래스를 초기화 할 때 1번만 수행되는 메서드다. static으로 선언해야 한다. @BeforeAll static void beforeAll() { System.out.println("@BeforeAll"); } 3. @BeforeEach @beforeEach 어노테이션을 붙이면 각 테스트 메서드 실행 이전에 수행되는 메서드다. @BeforeEach void beforeEach() { System.out.println("@BeforeEach"); } 4. @AfterAll @AfterAll ..
기본적으로 이 단계를 만족하도록 테스트를 작성할 수 있다. 간혹 그렇지 않은 경우도 있지만 초심자라면 더더욱 이것을 따르는 것이 좋다!! 1. given: 어떤 상황이 주어졌을 때(이 데이터 기반으로 함) 2. when: ~를 실행했을 때(검증할 것을 실행) 3. then: 검증한 결과가 ~가 나와야함 1,2 는 실행 단계, 3은 검증 단계라고 할 수 있다. 실행 단계에선는 사용자 입력을 모방해 테스트할 로직을 실행시키고 검증 단계에서는 실행 단계가 예상된 대로 동작하는지 검증한다. 1. AssertJ란? AssertJ는 많은 assertion을 제공하는 자바 라이브러리이다. 에러 메세지와 테스트 코드의 가독성을 매우 높여주고 각자 좋아하는 IDE에서 쓰기 굉장히 쉽다. 1) AssertJ 메서드 imp..