인프런 워밍업 스터디 클럽 3기 백엔드 Day 18미션
·
인프런 워밍업 클럽 3기
❓ Mission 1✔ @Mock, @MockBean, @Spy, @SpyBean, @InjectMocks 의 차이를 한번 정리해 봅시다.1️⃣ @Mock특징Mockito의 가짜 객체를 생성하는데 사용한다.@ExtendWith(MockitoExtension.class)를 사용해서 테스트를 시작하기전에 @Mock을 감지한다.Spring Context와 무관하게 동작한다.2️⃣ @MockBean특징@SpringTest @WebMvcTest에 사용한다.스프링빈을 Mock 객체로 대체한다.실제로 사용할 빈은 @AutoWired를 사용하고 @AutoWired가 동작할때 Mock객체를 사용할수 있게 한다.3️⃣ @InjectMocks특징@Mock 또는 @Spy어노테이션이 붙혀진 객체들을 주입 해준다.4️⃣ @Spy..
인프런 워밍업 스터디 클럽 3기 백엔드 Day 16미션
·
인프런 워밍업 클럽 3기
❓ Mission✔ Layered Architecture 구조의 레이어별 테스트 작성법을 알아보았습니다.레이어별로 ✔️ 1) 어떤 특징이 있고, ✔️ 2) 어떻게 테스트를 하면 좋을지, 자기만의 언어로 다시 한번 정리해 볼까요?1️⃣ Presentation Layer특징외부 세계의 요청을 가장 먼저 받는 계층컨트롤러를 통하여 요청 데이터를 검증(@Valid)하고 Business Layer 전달테스트 방법@MockMvc를 활용하여 테스트2️⃣ Business Layer특징비즈니스 로직을 처리하는 역할서비스 계층에서 데이터 가공 및 트랜잭션 관리테스트 방법@SpringBootTest를 활용하여 테스트@ExtendWith(MockitoExtension.class)를 활용하여 테스트3️⃣ Persistence ..
인프런 워밍업 스터디 클럽 3기 백엔드 Day 4 미션
·
인프런 워밍업 클럽 3기
❓ Mission 1.코드와 설명을 보고, [섹션 3. 논리 의 사고 흐름]에서 이야기 하는 내용을 중심으로 읽기좋은 코드로 리팩토링 해보기✔️ 사용자가 생성한 '주문'이 유효한지를 검증하는 메서드. ✔️ Order는 주문 객체이고, 필요하다면 Order에 추가적인 메서드를 만들어도 된다. (Order 내부의 구현을 구체적으로 할 필요는 없다.) ✔️ 필요하다면 메서드를 추출할 수 있다.public boolean validateOrder(Order order) { if (order.getItems().size() == 0) { log.info("주문 항목이 없습니다."); return false; } else { if (order.getTotalPrice(..