개발 일기

[JUnit] JUnit , AssertJ , MockMVC 메소드 본문

Spring

[JUnit] JUnit , AssertJ , MockMVC 메소드

dev-jo 2021. 8. 16. 21:18

이번 포스팅은 assertJ의 메소드와 설명, 

MockMVC의 메소드와 설명을 기록해보겠습니다.

 

사용법은 추후 예시로만든 클래스와 함께 계속 포스팅하겠습니다

 


 

AssertJ

 

Assert는 아래와 같이 되어있습니다

 

assertThat(obj).메소드();

 

assertThat(playList.getUse()).isEqualTo(useNo);

 

 

아래의 설명은 모두 왼쪽 값과의 비교를 기준으로 합니다

 

 

메소드 설명
isEqualTo(obj) obj와 같다
isNotEqualTo(obj) obj와 다르다
isEqualToIgnoringCase(str) 파라미터와 같다  ( 대소문자 무시) 
contains(str) 파라미터를 포함한다.
containsIgnoringCase(str) 파라미터를 포함한다( 대소문자 무시)
doesNotContain(str) 파라미터를 포함하지 않는다.
startsWith(str) 파라미터로 시작한다
doesNotStartWith(str) 파라미터로 시작하지 않는다.
endsWith(str) 파라미터로 끝난다
doesNotEndWith(str) 파라미터로 끝나지 않는다.
matches(regex) regex 정규식과 같다
doesNotMatch(regex) regex 정규식과 같지 않다
isLowerCase(str) 파라미터는 소문자로 이루어져 있다
isUpperCase(str) 파라미터는 대문자로 이루어져 있다.
isZero(n) 파라미터는 0이다
isNotZero(n) 파라미터는 0이 아니다
isOne(n) 파라미터는 1이다
isPositive(n) 파라미터는 양수 이다
isNegative(n) 파라미터는 음수 이다
isBetween(start, end) start와 end 사이의 값 이다
isStrictlyBetween(start,end) start와 end 사이의 값이 아니다
isCloseTo(n within or offset) 주어진 within 또는 offset 에 가까운 값이다.
isNotCloseTo(n, byLessThan or offset) 주어진 within 또는 offset 에 가까운 값이 아니다
isCloseTo(n, withinPercentage) 주어진 백분율 내에서 주어진 숫자에 가깝다
isNotCloseTo(n, withinPercentage) 주어진 백분율 내에서 주어진 숫자에 가깝지 않다
isTrue() 참이다
isFalse() 거짓이다
isNull() null 값 이다
isNotNull() null 이 아니다
isBlank() 빈 값이다
isNotBlank() 빈 값 이 아니다
isEmpty() 빈 값이다 ( 공백 포함 )
isNotEmpty() 빈 값이 아니다 ( 공백 미 포함 )
isNotOrEmpty() 빈 값이 아니다 (공백 미포함 )
isNullOrEmpty() null 값  이거나 빈 값 이다 (공백 포함 )
isLessThan(str) str보다 낮은 문자열 이다 (아스키 코드)
isln(..obj) 여러개의 obj 중 1개와 같다
isNotln(..obj) 여러 obj 와 모두 다르다
filteredOn(..) list필터
extracting(..) list 프로퍼티 값

 

 


MovkMvc

 

각 파트별 예시를 작성해두겠습니다.

 

request

 

ResultActions actions = this.mockMvc.perform(patch(url)
                .header("access_token", accessToken)
                .header("refresh_token", refreshToken)
                .param("playListId", String.valueOf(playList.getPlayListId()))
                .param("modifyPlayListName", playListName));

 

위처럼 사용이 가능합니다.

메소드 설명
contentType() 전송 타입
content() 전송 내용
header() 전송 헤더
headers() 여러개의 헤더
param() 전송 파라미터(key , value)
params() 전송 여러개의 파라미터
queryParam() 전송 쿼리형식 파라미터 (name=a&age=10)
queryParams() 여러개의 쿼리형식 파라미터
cookie() 전송 쿠키
locale() 전송 로컬 영역
requestAttr() 전송 request scope속성
sessionAttr() 전송 session scope 속성
flashAttr() 전송 flash scope 속성
session() 전송 세션
principal() 전송 principal
contextPath() 프로젝트 명
servletPath() 패키지 + 파일명
characherEncoding() 인코더

 

result

 

결과 확인

 

actions
                .andDo(print())
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.data.playListName").value(playListName))

 

메소드 설명
status() http status 코드 검증..
header() header 검증
content() content 검증 (body)
jsonPath() json 형식으로 content 검증
xpath() xpath 형식으로 content 검증
cookie() cookie 검증
view 컨트롤러가 반환한 뷰 이름 거증
forwardedUrl 이동대상의 경로를 검증
fowardedUrlPattern 이동대상의 경로를 패턴으로 검증
redirectedUrl 리다이렉트 대상의 경로 또는 URL 검증
redirectedUrlPattern 리다이렉트 대상의 경로 또는 URL 패턴 검증
model 스프링 MVC 모델 상태 검증
request 비동기 처리의 상태나 요청 스코프 상태 검증

 

 


 

AssertJ와 MockMvc의 메소드에 대해서 알아봤습니다

 

추후에 SpringBoot로 사용한 테스트 코드를 포스팅해보겠습니다.