🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

Day16레이어드 아키텍처와 레이어별 테스트 작성법

Day16레이어드 아키텍처와 레이어별 테스트 작성법

 레이어드 아키텍처와 테스트

-Persistence Layer

-Business Layer

-Presentation Layer

=>3가지가 레이어드 아키텍처의 구조

통합테스트

풍부한 단위 테스트 & 큰 기능 단위를 검증하는 통합테스트가 있다

Spring & JPA를 배우면서 기본 엔티티 설계 있어서

JPA(Java Persistence API)로 ORM(Object-Relational Mapping)기술 표준임

 

Persistence Layer

Persistence Layer는 영속성을 걸어주는 Layer라고 볼수 있다

Order 에 @Entity, @Table, @OnetoMany 처럼 관련 persistence entity로 종속관계를 걸어주는게 Persistence Layer에서 하는 역할이다

 

Test

given, when, then으로 정리를 해주는게 좋다

test를 한다면 기본적으로 Order 상태나 Product 상태를 생각해볼수 있다

@ActiveProfiles("test") @SpringBootTest 또는 @DataJpaTest를 사용하며 쓸수 있다

 

Business Layer

Service에서 진행하는 레이어이다

Service는 @Repository에 저장하는 형태의 특성을 가진다

@Transactional 을 걸어주고 비즈니에서 핵심로직 역할을 한다.

@Service를 위에다 넣어주고 필요한 Repository를 필드로 넣어준다

 

Test

ServiceTest관련 작성해주면 된다

@AutoProfile,@SpringBoot @AfterEach @Autowired를 걸어서 사용할수 있다.

@Autowired로 관련Repository를박고 OrderService로 일어날수 있는 여러가지 테스트를 생각해볼수 있다

ex) Order가 들어오면 제품 재고는 있나? Order는 확인한 사항이 중복되지않나? 관련 필요성을 Test로 만들어볼수 있다

@DisplayName("중복되는 상품번호 리스트로 주문을 생성할 수 있다.")
@Test
void createOrderWithDuplicateProductNumbers() {

 

Presentation Layer

관리자가 관리하는 Layer라고 보면 된다

내용이 워낙많아서 다 소화하지 못했습니다. 추후 소화하는대로 다시 정리하겠습니다.

 

참고사항

-Practical Testing-박우빈코치님

-모나코AI

 

 

댓글을 작성해보세요.

채널톡 아이콘