| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 |
| 30 |
Tags
- aws
- db
- EC2
- workflow
- build_test
- java
- string
- git
- JUnit
- Airflow
- QueryDSL
- immutable
- compiler
- JPA
- 토비의 스프링
- rds
- 알고리즘
- Action
- Github
- template
- springboot
- mutable
- 사이드 프로젝트
- CodeDeploy
- kotlin
- AOP
- redis
- Spring
Archives
- Today
- Total
개발 일기
[JUnit] JUnit , AssertJ , MockMVC 메소드 본문
이번 포스팅은 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로 사용한 테스트 코드를 포스팅해보겠습니다.
'Spring' 카테고리의 다른 글
| 토비의 스프링 스터디 시작. (0) | 2021.10.20 |
|---|---|
| SpringBoot 2.5.x , Java11 버전 이상에서 QueryDSL 설정하기 (0) | 2021.08.31 |
| SpringBoot convert snake to camel, camel to snake (0) | 2021.08.06 |
| SpringBoot 2.5.X 버전 이상에서 QueryDsl 설정하기 (0) | 2021.08.05 |
| SpringBoot 에서 Test DB H2 로 설정하기 (0) | 2021.08.02 |