본문 바로가기
부트캠프/코드스테이츠 백엔드부트캠프 43기

코드스테이츠 백엔드 부트캠프 43기 (SpringMVC 테스팅 - JUnit)

by 고구마는호박고구마 2023. 3. 10.

엄청 오랜만에 회고를 작성한다. 그 이유는 ... 공기업 필기 시험이 3/3. 3/4 일에 잡혀있어서 NCS, 전공공부 하기에 바빴다...그래서 블로깅은 잠시 킵 해두었다. 

 

아니 점점 갈 수록 공부를 안하고 복습을 안하게 되면 학습 과정을 따라가기 힘든 지경에 와버렸다... 이해가 안간단 말이지

그래서 오늘은 테스트에 하여 학습이 진행되었다. 

하나의 작업만 테스트하기 위하여 매번 수작업으로 서버를 열고 http 요청을 보내 확인하는 작업은 매우 비효율적이다.

그래서 Spring에서는 계층별로 테스트 할 수 있는 테스트 기법을 지원하고 있다.


단위테스트, 슬라이스테스트, Mockito 

 

단위테스트 -  하나의 계층 안에있는 기능 또는 클래스 내부에 있는 메서드와 같은 가장 작은 단위의 테스트를 의미한다.

 

슬라이스테스트 - api 계층, 서비스 계층, 데이터 엑세스 계층 등 계층별 테스트

 

통합 테스트 - 계층과 DB와의 그리고 사용자에게 데이터가 잘 전달되는지 테스트를 한다.

 

(전공공부를 하면서 소프트웨어 설계과정에서  V모델은 단위테스트, 통합테스트, 시스템 테스트, 인수테스트 라고해서 단통시인 이라고 외웠던 기억이...)

 

테스트 시 사용하는 표현방법

given - 테스트 대상에 전달되는 입력값

when - 테스트 할 동작을 지정

then - 테스트의 결과 검증

 

단위테스트

정산 프로그램(메서드) 가 잘 동작하는지가 관건

 

 

JUnit = 자바의 표준 테스트 프레임워크

 - JUnit 에서는 검증을 도와주는 Assertions를 import하면 검증을 쉽게 할 수 있다.

assert로 시작하는 다양한 검증 메서드가 제공됨

이 외에도 null 인지 검증하고 예외 인지 검증할 수 있는 다양한 메서드를 제공 

@BeforeEach - @Test 어노테이션이 있는 곳 마다 순차적으 새롭게 실행

@BeforeAll - 처음 한 번 모든 @Test에 실행이 됨

 

Hamcrest - 무슨 음식 이름 간다... Assert의 상위 버전이라고 하는데...

 -> 가독성이 좋음

 -> 테스트 실패 메시지를 이해하기 쉽다.

 

슬라이스 테스트

 @SpringBootTest

 @AutoConfigureMockMvc

 @Autowired 

 

  1. ResultActions 객체를 이용해서 우리가 전송한 request에 대한 검증을 수행할 수 있습니다.

 

MockMVC? (

Postman 등의 request를 발생시킬 수 있는 도구를 사용해 직접 호출해 서버를 디버깅해야 하는데 MockMVC를 사용하면 이 과정을 건너뛸 수 있다. 쉽게 말해 Controller를 호출해 주는 도구이다.

댓글