티스토리 뷰
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 |
댓글