1. 기본적인 get, post, put을 위한 MockMvc 테스트 템플릿이다. 2. 이걸 붙여 놓는 이유는 VSCode는 자동으로 static 메소드를 임포트 하는 기능이 좋지 않아 클래스 이름을 기억하기 힘들기 때문이다. 3. 기본적인 내용 3-1 JUnit 5 버전은 @ExtendWith를 사용해야 하고 MockitoExtention을 사용해야 BDDMockito문법을 사용할 수 있다. 3-2 사용을 원하는 fixture는 @MockBean을 붙여서 지정한다. 3-3 MockMvc는 @Autowired로 가져온다. package pe.pilseong.some.web.controller; import static org.hamcrest.CoreMatchers.is; import static org...
1. 체계적으로 작성하는 것이 아니라 그냥 코드를 쓰다가 붙여 둔다. 2. 아래는 컨트롤러 유닛 테스트이다. package pe.pilseong.restdemo.controller.v1; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.when; import java.util.Arrays; import java.util.List; import com.fasterxml.jackson.databind.ObjectMapper; import org.hamcrest.Matchers; import org.junit.jupite..
1. WebFlux를 테스트할 경웨는 WebTestClient를 사용해야 한다. 1-1 우선 WebTestClient을 해당 함수와 바인드하는 부분이 필요하다. 1-2 바인드 후에 WebMvc를 테스트 하듯 사용하면 된다. package pe.pilseong.recipe.controller; import static org.mockito.Mockito.when; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.http.MediaType; import org.springframework.test.web.rea..
1. 내장 mongodb를 사용하여 통합테스트 할 때 1-1 java.net.ConnectException: Connection refused (Connection refused)가 많이 발생할 경우가 있다. 1-2 mongodb의 기본 접속 포트는 27017인데 이것을 그냥 두는 경우에 발생하는 것 같다. 1-3 스프링에서 알아서 정해주도록 아래처럼 port를 0으로 지정하면 이런 문제가 사라진다. 1-3-1 왜 그런지는 알 수가 없다. CircleCI에서도 마찬가지로 동작한다. 1-3-2 정말 짜증나는 것은 이렇게 하면 Robo3T로 DB에 접속 후 데이터 보려고 하면 포트를 매번 지정해야 한다. logging.level.pe.pilseong.recipe=debug spring.data.mongodb..
1. 이 포스트는 JUnit 4 버전으로 작성되었다. 2. Integration Test를 위해서는 Application Context를 생성하여 한다. 2-1 이것을 위해 @RunWith라는 annotation으로 테스트를 수행하는 지정된 클래스를 실행하게 된다. 2-2 테스트를 위한 간단한 Context를 실행한다고 생각할 수 있고, 보통 JUnit 4에서는 SpringRunner.class가 지정된다. 2-3 SpringRunner.class는 이전에 SpringJUnit4ClassRunner의 이름만 바꾼거다. 3. Mongo DB 테스트를 위하여 @DataMongoTest라는 것이 제공된다. 3-1 내부적으로는 auto-configuration이 모두 disable되고 Mongo DB 테스트와 ..
1. 테스트를 하다 보면 언제 any, anyLong 같은 값을 사용할지 아니면 진짜 값을 넣어주어야 할지 혼란스럽다. 2. 아래 같은 유닛테스트의 경우는 모두 any, anyLong을 사용하고 있다. 2-1 예제는 Service 구현한 클래스를 테스트하는 것으로 2-2 Mockito fixture로는 repository나 conveter를 사용하고 있다. 2-3 fixture가 반환해야 할 값들을 세팅할 때 when을 사용하는데 여기의 인자들은 모두 any 계열을 사용한다. package pe.pilseong.recipe.service; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import..
1. 아래의 코드는 JUnit 4를 기반한 코드이다. 2. 통합 테스트의 경우 실제 컨텍스트가 필요하기 때문에 @SpringBootTest가 필요하다. 2-1 @RunWith만으로는 전체 스프링 컨텍스트가 기동하지 않기 때문에 Service가 주입되지 않는다. 3. 테스트 컨텍스트를 기동하기 위하여 @RunWith(SpringRunner.class) 가 필요하다. 3-1 없으면 테스트용 컨텍스트가 생성되지 않아 기동 자체가 되지 않는다. 4. testSaveOfDescpriton 테스트의 @Transactional은 필수다. 4-1 없는 경우, 스프링 컨텍스트 밖에서 실행하므로 Session을 찾을 수가 없다. package pe.pilseong.recipe.service; import static or..
1. JUnit 5가 되면 @RunWith 대신 @ExtendWith를 가지고 특정 기능만 활성화하여 테스트 할 수 있다. 2. Controller 테스트 방법은 MockMvc을 사용하면 좀 더 편리하다. 2-0 Mock fixture의 초기화는 MockitoAnnotations.initMocks(this), @ExtendWith 둘 중 하나를 쓸 수 있다. 2-0-1 아래는 initMocks을 사용하였다. @ExtendWith를 사용하면 자동으로 initMocks 호출을 포함한다. 2-1 물론 MockMvc를 사용하지 않고도 테스트는 가능하다. 2-2 MockMvc를 사용하게 되면 특정 url의 호출을 시뮬레이션할 수 있고 결과를 한번에 체크 가능하다. 2-3 아래의 listOwners 메소드는 Moc..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- MYSQL
- XML
- form
- one-to-one
- login
- 설정
- 스프링
- 상속
- 설정하기
- Validation
- hibernate
- Spring Security
- jsp
- mapping
- RestTemplate
- Security
- 하이버네이트
- WebMvc
- one-to-many
- Spring
- 매핑
- 자바
- crud
- Rest
- 스프링부트
- 외부파일
- Many-To-Many
- spring boot
- Angular
- 로그인