SpringFramework 36

JUnit5 assertAll 사용법

테스트 결과를 여러개 실행하여 결과를 도출하기 위해 사용 코드 @Test void findBySource(){ Pageable pageable = PageRequest.of(0, 10, Sort.by("createdAt").descending()); Page bySource = poolContentRepository.findBySource(ContentSource.news, pageable); bySource.stream().findFirst().ifPresent(poolContent -> { assertAll( "first test", () -> assertEquals(12324, poolContent.getId()), () -> assertEquals(ContentSource.news, poolCon..

SpringBoot JUnit5 의존성 설정

SpringBoot 2.1 이하의 버전의 경우 // junit5 testImplementation("org.springframework.boot:spring-boot-starter-test") { exclude module : 'junit' } testImplementation("org.junit.jupiter:junit-jupiter-api") testCompile("org.junit.jupiter:junit-jupiter-params") testRuntime("org.junit.jupiter:junit-jupiter-engine") test { useJUnitPlatform() } SpringBoot 2.2 이상의 버전의 경우 testImplementation("org.springframework.b..

Swagger2 설정 및 사용

설정 의존성 추가 build.gradle에 아래 의존성들을 추가 // support swagger doc compile ('io.springfox:springfox-swagger2:2.9.2') Application 설정 추가 application.yml 파일에 설정 추가 springdoc: swagger-ui: path: /test/api-docs.html # swagger ui html 파일 경로 설정, 컨트롤러에서 해당 경로를 호출하면 자동 생성된 swagger 페이지가 보인다. paths-to-match: /api/** # 매칭 기본 URL 설정 Bean 등록 기본설정 - 설정된 /api/** 이하의 모든 API의 명세를 생성. @Configuration @EnableSwagger2 public ..

class 파일내 DataSource 설정

프로젝트이 vault 기능이 필요하여, 부득이하게 Class 파일에서 DataSource 설정이 필요한 경우 아래와같이 작성한다 @Configuration @EnableTransactionManagement public class DataSourceConfig { @Autowired private ApplicationContext applicationContext; @Value("#{new Integer('${db.connection.count}')}")// 설정 파일내 개수 적용(prod, dev 분할용) private int dbConnectionSize; @Bean(name = "dataSource") public DataSource dataSource() throws Exception { Basi..

REST API

REST API 구성 Resource(자원, URI) 서버는 유니크한 ID를 가지는 Resource를 가지며, 클라이언트는 이러한 Resource에 요청을 보낸다. Method(행위, POST등) CRUD 연산 중에서 처리를 위한 연산에 맞는 Method를 사용하여 서버에 요청을 보낸다. Representation of Resource(자원의 형태, JSON) 클라이언트와 서버가 데이터를 주고 받는 형태 json, xml, text, rss 등이 있다. URL(Uniform Resource Locator) 인터넷상 자원의 위치 URI(Uniform Resource Indentifier) 인터넷상 자원을 식별하기 위한 문자열 구성, URI는 URL을 포함 REST(Representational State ..

Spring Seurity 적용시 테스트 방안

SecurityContextHolder를 통해서 인증정보를 설정 테스트 실행 전 인증 정보를 직접 입력하여 테스트 진행 @Before public void setUp() { SecurityContextHolder.getContext() .setAuthentication(new UsernamePasswordAuthenticationToken("test1" , "test1" , Arrays.asList(new SimpleGrantedAuthority("ROLE_USER")) )); } WithMockUser 어노테이션 사용 별도의 UserDetailsService와 같은 스텁을 제공하지 않아도 간단하게 인증정보를 설정하기 위한 어노테이션 @Test @WithMockUser(value="test1",roles..

Assert 함수

매개변수 설명 expected - 예상하는 기대 값 actual - 실제 입력된 값 message - assert 함수 실행시 나오는 메시지 delta - 오차범위 assertEquals - expected 값과 actual 값 일치 여부 assertNotEquals - expected 값과 actual 값 미 일치 여부 assertNull - object 값 null 여부 assertNotNull - object 값 not null 여부 assertTrue - contition true 여부 assertFalse - contition false 여부 assertThat - JUnit4.4 버전부터 추가 - hamcrest 라이브러리 사용을 통합하여 assertion을 작성하는데 더 나은 방법을 제공 a..