Spring/Test
-
@Value를 이용하여 application.yml에 등록한 property값을 읽어오는 경우가 있다 이러한 경우에 test를 작성할 때 원하는 값을 넣어주고 싶은 경우 어떻게 하는지 알아보도록 하자 크게 2가지의 상황으로 나누어 볼 수 있다 @SpringBootTest @SpringBootTest를 사용하지 않는 경우 @Component @Data public class TestComponent { @Value("${my.test.value}") public String initValue; public void printA() { System.out.println(initValue); } } @SpringBootTest public class UnitTest { @Autowired public Test..
[Test] 테스트 작성시 @Value 주입 방법@Value를 이용하여 application.yml에 등록한 property값을 읽어오는 경우가 있다 이러한 경우에 test를 작성할 때 원하는 값을 넣어주고 싶은 경우 어떻게 하는지 알아보도록 하자 크게 2가지의 상황으로 나누어 볼 수 있다 @SpringBootTest @SpringBootTest를 사용하지 않는 경우 @Component @Data public class TestComponent { @Value("${my.test.value}") public String initValue; public void printA() { System.out.println(initValue); } } @SpringBootTest public class UnitTest { @Autowired public Test..
2024.01.01 -
특정 테스트를 작성할 때 input의 형태는 정해져 있는데 많은 값들을 검증해야 하는 경우에 각각을 테스트케이스로 만들기는 너무 귀찮고 번거롭다.. 이러한 상황에서 활용할 수 있는 JUnit 어노테이션을 알아보자. Dependency 스프링 부트를 이용해서 개발하고 있다고 하면 테스트를 작성하기 위해 추가해야 할 dependency는 간단하다 // gradle dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } // maven org.springframework.boot spring-boot-starter-test test 사용법 예시로 다양한 osType별 system type 체크가 필요할 때 우..
[SpringTest] @ParameterizedTest 사용해보기특정 테스트를 작성할 때 input의 형태는 정해져 있는데 많은 값들을 검증해야 하는 경우에 각각을 테스트케이스로 만들기는 너무 귀찮고 번거롭다.. 이러한 상황에서 활용할 수 있는 JUnit 어노테이션을 알아보자. Dependency 스프링 부트를 이용해서 개발하고 있다고 하면 테스트를 작성하기 위해 추가해야 할 dependency는 간단하다 // gradle dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } // maven org.springframework.boot spring-boot-starter-test test 사용법 예시로 다양한 osType별 system type 체크가 필요할 때 우..
2023.11.17 -
스프링 테스트를 작성하면 기존에 있는 테스트 코드를 참고해서 유사하게 만드는 경우가 많다 그러는 중간에 @Mock @MockBean 어노테이션을 다르게 사용하는 것을 발견하게 되었고 이 둘의 차이가 궁금해져서 찾아본 내용을 정리해보자 @MockBean import org.springframework.boot.test.mock.mockito.MockBean MockBean은 스프링프레임워크의 어노테이션으로 스프링 콘텍스트를 테스트할 때 사용된다. @Autowired와 같이 스프링 빈이 주입될 때 MockBean이 붙은 객체가 주입된다. -> Mock 객체를 생성하고, 스프링 컨텍스트에 등록을 한다 @SpringBootTest public class MockTests { @MockBean private Te..
[SpringTest] Mock, MockBean 차이점 알아보기스프링 테스트를 작성하면 기존에 있는 테스트 코드를 참고해서 유사하게 만드는 경우가 많다 그러는 중간에 @Mock @MockBean 어노테이션을 다르게 사용하는 것을 발견하게 되었고 이 둘의 차이가 궁금해져서 찾아본 내용을 정리해보자 @MockBean import org.springframework.boot.test.mock.mockito.MockBean MockBean은 스프링프레임워크의 어노테이션으로 스프링 콘텍스트를 테스트할 때 사용된다. @Autowired와 같이 스프링 빈이 주입될 때 MockBean이 붙은 객체가 주입된다. -> Mock 객체를 생성하고, 스프링 컨텍스트에 등록을 한다 @SpringBootTest public class MockTests { @MockBean private Te..
2023.11.01 -
Servlet을 사용한 Web Server를 구동 중이지만, 가끔 WebClient를 이용한 호출을 하는 경우도 있다. 이러한 경우에 WebMvcTest를 이용하여 어떻게 controller layer의 테스트 코드를 작성하는지 정리해 보자. 아래 코드는 reactive를 이용한 응답이 아닌 경우 일반적으로 사용하는 코드이다 @Test void test() throws Exception { BDDMockito.willThrow(new TestException()) .given(testService).addtt(any()); TestParam param = createParam(); this.mockMvc.perform(RestDocumentationRequestBuilders.post("/test/add..
[SpringTest] Reactive API WebMvcTest 작성(Mono, Flux)Servlet을 사용한 Web Server를 구동 중이지만, 가끔 WebClient를 이용한 호출을 하는 경우도 있다. 이러한 경우에 WebMvcTest를 이용하여 어떻게 controller layer의 테스트 코드를 작성하는지 정리해 보자. 아래 코드는 reactive를 이용한 응답이 아닌 경우 일반적으로 사용하는 코드이다 @Test void test() throws Exception { BDDMockito.willThrow(new TestException()) .given(testService).addtt(any()); TestParam param = createParam(); this.mockMvc.perform(RestDocumentationRequestBuilders.post("/test/add..
2023.10.28