티스토리 뷰

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)를 추가하면 테스트 순서를 정할 수 있다.

 

 

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28