본문 바로가기

Backend

(30)
[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파일을 확인해보길 바랍니다.
[질문-시리즈] Data에게 TDA(Tell Don’t Ask)를 적용해야 할까? [질문 시리즈]는 주변 개발자 분들께 제가 생각하는 내용을 질문 후 답변받은 내용입니다. 답변엔 여러 사람들의 관점이 섞여있어 최대한 정리하여 작성하였습니다. 해당 포스팅은 질문에 대한 정답을 명확히 하는 것이 목표가 아닙니다. 프로젝트를 바라보는 관점에 따라 의견이 다양해질 수 있고, 이 글 또한 그중 하나의 관점 정도로 생각하고 읽어주세요. 질문 Request를 검증하는 RequestValidator는 알맞은 방법인가요? 사용자의 요청문인 Request를 검증하기 위해 RequestValidator를 만들어서 검증 처리를 해결했습니다. 그런데 TDA 원칙에 따르면 자신의 정보를 남에게 전달하지 말고 직접 행동(검증)을 하는 방법을 제시하는데, 이럴 경우 구현한 내용인 RequestValidator가 ..
[질문-시리즈] 생성자? 정적 팩토리 메서드? 빌더? [질문 시리즈]는 주변 개발자 분들께 제가 생각하는 내용을 질문 후 답변받은 내용입니다. 답변엔 여러 사람들의 관점을 바탕으로 최대한 정리하여 작성하였습니다. 해당 포스팅은 질문에 대한 정답을 명확히 하는 것이 목표가 아닙니다. 프로젝트를 바라보는 관점에 따라 의견이 다양해질 수 있고, 이 글 또한 그중 하나의 관점 정도로 생각하고 읽어주세요. 질문 다들 뭐 사용해? 참여한 프로젝트에서 new 키워드, 정적 팩토리 메서드, 빌더 패턴 등 다양한 방법을 활용하여 인스턴스를 생성하는 것을 보았습니다. 곰곰이 지켜보다 문뜩 이런 질문이 떠올랐습니다. 왜 여러가지 방법을 사용해서 인스턴스를 생성하는 거야? 자문자답을 해보려 하니 마땅히 떠오르는 것은 어… 그냥 편해서? 였습니다. 고민을 해본 적이 없었고 스스로..
[질문-시리즈] 테스트 코드 작성에 대한 피로도가 심해요 [질문 시리즈]는 주변 개발자 분들께 제가 생각하는 내용을 질문 후 답변들을 정리한 내용입니다. 해당 포스팅은 질문에 대한 정답을 명확히 하는 것이 목표가 아닙니다. 프로젝트를 바라보는 관점에 따라 의견이 다양해질 수 있고, 이 글 또한 여러 관점 중 하나일 뿐이라 생각합니다. :D 질문 요구사항을 왜 바꿔! 돌려줘! 프로젝트를 진행하다 보면 기존 코드를 기반으로 테스트 코드를 작성해야 하는 경우가 있고, 처음부터 테스트 코드 기반 개발을 진행할 수도 있습니다. 저 같은 경우 틀이 정해지지 않은 후자의 방법으로 프로젝트를 시작하였습니다. 처음 테스트 코드를 작성할 때는 어떤 범주의 테스트 코드를 작성할지 상의 후 개발을 진행했습니다. 어떤 값을 넘겨주는지 테스트 대상 메서드 내부에서 특정 메서드를 호출되..
[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..