1. 현재 스프링 최신버전은 2.3.2이다. 현재 버전에서는 아래처럼 기본적으로 JUnit 5만 import된다. 1-1 exclusions 부분이 있어 vintage를 걷어내도록 하고 있는데 exclusions이 부분을 삭제하면 JUnit 4가 import 된다. ... org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.springframework.boot spring-boot-maven-plugin 2. 버전이 2.1 이전의 경우 JUnit 5를 사용하기 위해서는 기존의 JUnit 4을 제거하고 JUnit 5를 삽입하는 부분이 필요하다. org.springframework.bo..
1. 메이븐의 spring-boot-maven-plugin은 기본적으로 surefire 플러그인을 사용하여 유닛테스트만 수행한다. 2. Integration Test는 시간이 많이 걸리고 시스템의 부하도 크기 때문에 Unit 테스트를 통과한 경우에만 수행해야 한다. 3. 통합 테스트를 위해서는 maven-failsafe-plugin을 설정해 주어야 한다. 3-1 설정 후에 verify goal을 통해 실행가능하고 한번에 surefire로 unit테스트 수행 후 통합테스트를 순차로 실행한다. 4. 아래는 전체 pom.xml 4-1 starter-test가 두개로 나누어져 있는데 스프링부트 최신버전은 JUnit5를 기본으로 사용하는데 4-1-1 최근 포스트에는 JUnit 4를 가지고 코드를 작성하였기 때문에..
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. JPA 테스트를 위하여 @DataJpaTest라는 것이 제공된다. 3-1 내부적으로는 auto-configuration이 모두 disable되고 JPA테스트와 관련된 부분만 활성화 된..
0. JUint 4 기반의 테스트 코드이다. 1. MockMvc는 Web MVC Controller를 테스트 위해 만들어진 Unit Test용 클래스이다. 1-1 MockServletContext를 로딩하여 전체 application context 만들지 않고도 테스트 할 수 있게 해준다. 1-2 아래 코드에서 중요한 부분은 testMockMvc 메소드이다. 1-3 특정한 컨트롤러를 테스트할 수 있도록 도와주는 MockMvcBuilders를 제공한다. 1-4 perform 메소드를 통해 해당 컨트롤러의 메소드를 실행할 수 있고 1-5. MockMvcRequestBuilders, MockMvcResultMatchers의 get, status, view 메소드를 사용하여 상태를 확인한다. 1-6. get은 ..
1. JUnit 4 버전의 테스트 코드이다. 2. ArgumentCaptor이라는 클래스를 사용하여 인자 값을 받아올 수 있다. 2-1 ArgumentCaptor의 capture는 verify 구문 내에서 사용할 수 있다. 2-2 반환되는 값은 Recipe Set이 되고 검증에 사용할 수 있다. package pe.pilseong.recipe.controller; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.ui.Model; import pe.pilseong.recipe.domain.R..
1. JUnit 4 버전의 테스트 코드이다. 1-1 아래는 unit 테스트이므로 컨텐스트를 생성할 필요가 없다. 1-1-1 여기서는 MokitoAnnotations.intiMocks 메소드를 사용하였는데 1-1-2 @RunWith(MockitoJUnitRunner.class)를 사용해도 된다. 1-2 컨트롤러는 일반적으로 Service를 사용하고 Model을 사용한다. 둘 다 Mock으로 생성하였다. 1-3 service를 호출했을 때 반환할 값을 설정하였다. 1-4 controller의 메소드를 호출하여 정상적인 view이름을 반환하는 지 확인한다. 1-5 마지막으로 service의 메소드가 몇 번 호출되었는지 model의 메소드가 몇 번 호출되었는지 체크한다. package pe.pilseong.re..
1. JUnit 4 버전의 테스트 코드이다. 2. 아래는 Service 구현체의 Unit테스트의 예시이다. 연동이 필요하기 때문에 Mock object를 사용한다. 2-1 테스트는 context를 사용하지 않는다. 2-2 Mockito를 통해 Repository fixture을 구현하고 있다. 2-3 MockitoAnnotations은 @Mock으로 지정된 fixture를 초기화 해 준다. initMocks의 인자는 테스트 클래스가 된다. 2-3-1 더 정확히 말하면 @org.mockito.Mock, @Spy, @Captor, @InjectMocks 로 지정된 fixture를 초기화 해준다. 2-3-2 이 방식을 사용하지 않으려면 클래스에 @RunWith(MockitoJUnitRunner.class) 를..
1. 스프링 개발의 기본 중에 하나가 테스트이다. 간단하게 몇 가지 메모해 준다. 2. junit 테스트 2-0 maven archetype quickstart 1.4로 생성하니 junit 4.11로 dependency가 생성된다. junit junit 4.11 test 2-1 대상 클래스 package pe.pilseong; /** * Hello world! * */ public class MyMath { int sum(int[] numbers) { int sum = 0; for (int i : numbers) { sum += i; } return sum; } } 2-2 테스트 클래스 2-2-1 일반적인 테스트는 기대값과 결과 값의 단순 비교이다. 2-2-2 아래 같이 assert를 기본으로 사용한다...
- 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
- 설정
- hibernate
- 스프링부트
- 상속
- mapping
- XML
- Rest
- 설정하기
- Spring Security
- spring boot
- form
- Validation
- Security
- 하이버네이트
- login
- 로그인
- 외부파일
- WebMvc
- 자바
- Angular
- crud
- Many-To-Many
- one-to-many
- RestTemplate
- one-to-one
- Spring
- jsp