공부/Test Code

Spring & JPA 기반 테스트

kkkkkdddddhhhhh 2024. 1. 11. 03:45

Layerd Architecture (관심사의 분리)

Presentation Layer

  • 외부 세계의 요청을 가장 먼저 받는 계층
  • 파라미터에 대한 최소한의 검증을 수행한다.
    • 넘겨온 데이터들에대한 Validation이 중요하다.

Business Layer

  • 비지니스 로직을 구현하는 역할
  • Persistence Layer와의 상호작용(Data를 읽고 쓰는 행위)을 통해 비지니스 로직을 전개
  • 트랜잭션을 보장해야한다.

Persistence Layer

  • Data Access의 역할
  • 비지니스 가공 로직이 포함되어서는 안된다.
    • DATA CRUD에 대한 CRUD에만 집중한 레이어

@DataJpaTest //@SpringBootTest 보다 가벼움. JPA에 필요한 bean만 띄워줌

 


  • 하위 계층은 상위 계층에대한 Data가 없어야 한다.
  • 컨트롤러는 서비스의 클래스를 사용하기에 data가 존재하지만 service는 컨트롤러의 클래스를 의존하지 않아야한다.
  • 주로 dto가 여러 계층에서 사용되기에 dto를 계층별로 만들어주는것이 번거롭지만 좋다.
    • 의존성문제나 책임 분리 측면에서 아주 좋은 방법이된다

통합 테스트 (Integration Test)

  • 여러 모듈이 협력하는 기능을 통합적으로 검증하는 테스트
  • 일반적으로 작은 범위의 단위 테스트 만으로는 기능전체의 신뢰성을 보장할 수 없다.
  • 풍부한 단위 테스트 & 큰 기능 단위를 검증하는 통합 테스트

'공부 > Test Code' 카테고리의 다른 글

TDD  (0) 2024.01.11
TEST = []  (0) 2024.01.11
Mock  (0) 2024.01.11
더 나은 테스트 작성하기  (0) 2024.01.11
UnitTEST  (0) 2024.01.11