본문 바로가기

Backend/SpringBoot

(10)
[SpringBoot] JUnit Test Class AssertJ기본 설정하기 [SpringBoot] JUnit Test Class AssertJ기본 설정하기 ⛳ 목표 설정 Intelij에서 JUnit Test Class를 생성 시 AssertJ를 바로 적용하기! 🔖 주제 Spring Test Code 작성 과정에 Jupiter 보다 AssertJ를 사용하는 분들에게 미약한 도움이 될 내용입니다. Intelij에서는 JUnit Test Class를 생성 시 기본적으로 Jupiter를 Import 하도록 되어 있지만, 해당 내용을 AssertJ를 적용하도록 수정할 수 있습니다. 📓 설명 Editor > File and Code Templates > Code > JUnit5 Test Class
[SpringBoot]JUnit5 Mock기반 테스트 테스트 예시 Mock 객체 생성 public class ExampleTest { private ExampleService exampleService; private ExampleRepository mockExampleRepository; @SetUp public void setUp() { mockExampleRepository = Mockito.mock(ExampleRepository.class); exampleService = new ExampleService(mockExampleRepository); } } Annotation기반 예시 import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.junit.jupiter.MockitoEx..
[Spring Boot] main이외 디렉토리 추가 및 적용하기 통합 테스트를 구성하는 과정에 내용을 main 외에 별도의 디렉토리에 구성하는 사항을 해결하고자 합니다. maven에서는 org.codehaus.mojo:build-helper-maven-plugin 를 적용해서 POM에 디렉토리를 적용할 수 있습니다. source dir resource dir test source dir test resource dir 적용법은 아래와 같습니다. org.codehaus.mojo build-helper-maven-plugin add-integration-test-source generate-test-sources add-test-source src/integrationTest/java add-integration-test-resource generate-test-reso..
[Mybatis] All Elements are null Mapper파일로 정의된 프로시저를 호출 후 List를 반환받았지만 size만 변경되고 값이 null이 반환되는 현상이 발생했습니다. 제 경우 Mapper 파일에 정의한 resultMap의 속성 명이 잘못 작성되어 값이 전부 null로 반환되어 생긴 문제였습니다. 저와 동일한 문제가 발생한다면 Mapper파일을 확인해보길 바랍니다.
[Spring Boot]Response Handling 하기-Flux [관련 포스트] [Spring Boot]Exception Handling 하기 [Spring Boot]Response Handling 하기-MVC [활용 목적] Flux 환경에서 Api 요청 결과에 대해 특정 포맷으로 변경하고 싶은 경우 [Dependencies] dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-webflux' // 별도의 모듈로 만들고 stater-webflux까지 필요하진 않는 경우 // implementation group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1' // implementation 'org.springfra..
[Spring Boot]Response Handling 하기-MVC Api 요청 결과를 제어하는 방법이 작성한 포스팅입니다. [참고 자료] - [Spring Boot] zkdlu/zkdlu/api-response-spring-boot-starter [관련 포스트] [Spring Boot]Exception Handling 하기 [Spring Boot]Response Handling 하기-Flux [활용 목적] Api 요청 결과에 대해 특정 포맷으로 변경하고 싶은 경우 [Dependencies] dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' ... } 구현 ServletResponseAdvice.jav..
[Spring Boot]Exception Handling 하기 동작 과정에서 발생하는 Exception을 제어하는 방법을 작성한 포스팅입니다. [관련 포스트] [Spring Boot]Response Handling 하기-MVC [Spring Boot]Response Handling 하기-Flux [활용 목적] 예외 처리된 결과를 특정 포맷으로 변경하여 제공하고 싶은 경우 Exception 별로 별도의 동작(로그, 추가 행동)을 작성하려는 경우 [Dependencies] dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-web' // 별도의 모듈로 만들고 프로젝트가 MVC인지 Flux 인지 모를 경우 // implementation group: 'javax.servlet', ..
[Spring Boot] Feign Client 로그 미동작 해결 Feign Client의 logLevel을 FULL로 설정하면 통신과정에서 주고받는 정보 등을 모두 log로 확인할 수 있습니다. 하지만 jar로 빌드 후 서비스를 배포하면 log가 보이지 않게 됩니다. 해당 현상에 대해 원인 파악 후 알게 된 해결방법을 작성합니다. 문제 Jar File로 배포 후 서비스 동작 시 Feign Client의 log가 확인되지 않는다. 원인 Feign Client를 만드는 과정에서부터 시작됩니다. @Configuration public class VCAClientConfig { @Bean public VCAClient vcaClient(@Autowired ObjectMapper objectMapper, @Value("${client.vca.url}") String url) ..