[항해99] Spring 심화반 강의(3) 정리

2021. 3. 27. 17:05·항해99
728x90
반응형

 

 

1.  JUnit을 이용한 단위테스트

 

단위테스트란?

프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하고 이를 통해 문제 발생 시 정확하게 어느 부분이 잘못되었는지를 재빨리 확인 할 수 있게 해준다.

 

JUnit이란?

자바 프로그래밍 언어용 단위 테스트 프레임워크 이다.

 

TDD (Test-Driven Development)?

  • AS-IS) 설계 -> 개발 -> 테스트 -> 설계수정
  • TO-BE) 설계 -> 테스트 -> 설계수정 -> 테스트

TO-BE 방법이 테스트 주도 개발 TDD이다.

 

Mockito

Mock 객체를 쉽게 만들 수 있는 방법을 제공해준다. 스프링부트 안에 포함되어있다.

Mock이란 각 테스트 케이스는 서로 분리되어야 좋기 때문에 가짜 객체 (Mock object)를 생성하는 것이 좋은 방법이다.

@Mock 어노테이션을 추가해주면 된다.

 

 

2. 통합테스트, 단위테스트

 

단위테스트 (Unit Test)

  • 하나의 모듈이나 클래스에 대해 세밀한 부분까지 테스트 가능
  • 모듈 간에 상호 작용 검증 못함

통합테스트 (Integration Test)

  • 두 개 이상의 모듈이 연결된 상태를 테스트
  • 모듈 간의 연결에서 발생하는 에러 검증 가능

E2E 테스트 (End to End Test)

  • 실제 사용자의 실행 환경과 거의 동일한 환경에서 테스트 진행 (= 블랙박스 테스팅)

통합테스트 종류

 

1) 클라이언트 코드에서 호출

  • 장점 : 실제 서비스를 사용하게 될 고객의 입장에서 기능을 검증해 볼 수 있음
  • 단점 : 클라이언트 코드 (HTML, CSS, JS)가 다 작성 되어야만 기능 검증 가능함

2) API 호출앱 사용 (ex. Advanced REST client, Postman)

  • 장점 : UI 없이 서버의 API를 손쉽게 검증 가능
  • 단점 : 여러개의 API를 한번에 검증하기 어려움

3) 스프링의 테스트 프레임워크 사용

  • 장점 : UI 없이 서버의 API를 손쉽게 검증가능, 여러개의 API를 한번에 검증가능
  • 단점 : 테스트 프레임워크에 대한 추가학습 필요, 테스트 코드 작성 시간 소요

=> JUnit으로 단위테스트 시에는 스프링이 동작을 안했는데 통합테스트를 수행하기 위해서는 스프링이 동작해야한다.

@SpringBootTest 어노테이션을 이용하면 스프링이 동작하여 통합테스트가 가능하다. 그리고 @Order(1), @Order(2)를 추가하면 테스트 순서를 정할 수 있다.

 

 

 

 

반응형
저작자표시 (새창열림)

'항해99' 카테고리의 다른 글

[항해99] 4주차 회고 주특기-1 (Spring)  (0) 2021.03.28
[항해99] Spring 심화반 강의 (4) 정리  (0) 2021.03.27
[항해99] Spring 심화반 강의 (2) 정리  (0) 2021.03.26
[항해99] Spring 심화반 강의 (1) 정리  (0) 2021.03.26
[항해99] 3주차 회고 알고리즘-2 (문제풀이)  (0) 2021.03.21
'항해99' 카테고리의 다른 글
  • [항해99] 4주차 회고 주특기-1 (Spring)
  • [항해99] Spring 심화반 강의 (4) 정리
  • [항해99] Spring 심화반 강의 (2) 정리
  • [항해99] Spring 심화반 강의 (1) 정리
wookcode
wookcode
공부한 내용들을 정리하고 기록하는 블로그입니다.
    반응형
  • wookcode
    wookcode
    wookcode
  • 전체
    오늘
    어제
    • 카테고리 (196) N
      • study (1) N
        • 아파치 카프카 애플리케이션 프로그래밍 with 자.. (0)
        • 인프런 (1) N
      • Live Study (15)
      • Programming (14)
        • Java (8)
        • Python (1)
        • Springboot (5)
        • MSA (0)
      • 알고리즘 (117)
        • 백준 (58)
        • 프로그래머스 (59)
      • 에러로그 (5)
      • 항해99 (23)
      • 면접 (1)
      • 프로젝트 (1)
      • CS (19)
        • 네트워크 (2)
        • 운영체제 (2)
        • 데이터베이스 (2)
        • 컴퓨터구조 (1)
        • Java (8)
        • Spring (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    괄호
    후기
    java
    orm
    spring
    SpringBoot
    코딩테스트
    백준
    알고리즘
    회고
    해결
    카카오인턴
    인프런
    에러
    김영한
    그리디
    브루트포스
    조합
    항해99
    SFlash
    스파르타코딩클럽
    정리
    항해마켓
    카카오코딩테스트
    파이썬
    jpa
    프로그래머스
    미니프로젝트
    버그
    실전프로젝트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
wookcode
[항해99] Spring 심화반 강의(3) 정리
상단으로

티스토리툴바