본문 바로가기

JAVA/SpringBoot26

[SpringBoot] Jacoco 코드 작성 1. pom.xml org.jacoco jacoco-maven-plugin 0.8.5 **/DeleteController.class prepare-agent report test report 2. Maven > [프로젝트] > Lifecycle > verify 클릭 (전체 빌드테스트) 3. Run 로그 확인 4. [프로젝트] > target > site > index.html 클릭 5. 프로젝트 이름의 사이트 오픈 6. com.seypak.study.intellij.controller 확인 > DeleteController제외 확인 ( exclude에 선언된 컨트롤러 제외됨 ) 7. ProductController > 커버리지 확인 > 초록색: 정상적으로 실행됨. > 노랑색: false로 들어오는 결과값.. 2023. 8. 8.
[SpringBoot] Jacoco 테스트 커버리지 설명 코드커버리지: 소프트웨어의 테스트 수준이 충분한지 표현할 수 있는 지표 중 하나 테스트를 진행했을 때 해당 코드가 실행되었는지를 표현하는 방법 실무에서는 일반적으로 70~80%를 보장해주어야 빌드/배포를 진행, 조금 더 빡빡하고, 안정적으로 진행하는 프로젝트에서는 90%이상으로 보장 Jacoco란? 블랙박스 테스트 (Black Box Test) / 화이트박스 테스트(White Box Test) - BlackBoxTest (사용자 테스트) 사용자 입장에서 내부 소스코드가 어떻게 작성되어있는지 모르고 어떤 서비스 동작 확인하기때문에 사용자 입장의 서비스 동작 테스트 방식 - WhiteBoxTest (개발자 테스트) 내부구조와 동작을 검사하는 개발자관점의 테스트 방식 Jacoco pom.xml 파일 설정 Ja.. 2023. 8. 7.
[SpringBoot] JUnit 테스트코드 - Service package com.seypak.study.intellij.service.impl; import com.seypak.study.intellij.data.dto.ProductDto; import com.seypak.study.intellij.data.entity.ProductEntity; import com.seypak.study.intellij.data.handler.impl.ProductDataHandlerImpl; import com.seypak.study.intellij.service.ProductService; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupi.. 2023. 8. 7.
[SpringBoot] JUnit 테스트코드 - Controller - 소스 확인 @WebMvcTest(ProductController.class) //@AutoConfigureWebMvc // 이 어노테이션을 통해 MockMvc를 Builder 없이 주입받을 수 있음 public class ProductControllerTest { @Autowired private MockMvc mockMvc; // ProductController에서 잡고 있는 Bean 객체에 대해 Mock 형태의 객체를 생성해줌 @MockBean ProductServiceImpl productService; // http://localhost:8080/api/v1/product-api/product/{productId} @Test @DisplayName("Product 데이터 가져오기 테스트") v.. 2023. 7. 31.
[SpringBoot] JUnit 설명 2. JUnit 모듈 설명 3. JUnit LifeCycle Annotation @Test, @BeforeEach, @AfterEach, @BeforeAll, @AfterAll 추가) @Disabled: 테스트를 실행하지 않게 설정하는 어노테이션 (@Ignored) 4. JUnit Main Annotation @SpringBootTest - 통합 테스트 용도로 사용됨 - @SpringBootApplication을 찾아가 하위의 모든 Bean을 스캔하여 로드 - 그 후 Test용 Application Context를 만들어 Bean을 추가하고, @MockBean을 찾아 교체 @ExtendWith - JUnit4에서 @RunWith로 사용되던 어노테이션이 변경 - 메인으로 실행될 Class를 지정할 수 있음.. 2023. 7. 28.
[SpringBoot] Validation (유효성 검사/데이터 검증) 1. @annotation 종류 2. Maven Dependency 설정 3. DTO annotation 추가 4. Validation 테스트 수행 컨트롤러 메소드 내 @Valid 와 DTO 객체 내의 @annotation 과 연결되어 실패처리함. 5. Swagger saveProduct 실행 6. DefaultHandlerExceptionResolver LOG 확인 [2023-07-27 16:38:01.169] [WARN ] [http-nio-8080-exec-1] o.s.w.s.m.s.DefaultHandlerExceptionResolver Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed .. 2023. 7. 27.
[SpringBoot] Logback 설정 1. Logback 설정파일 형식 2. appender 3. encoder 4. root 5. 로그 레벨 설명1) TRACE > DEBUG > INFO > WARN > ERROR > OFF (OFF도 존재) 6. 패턴 추가설명1) %-5lovel: 로그레벨의 가장 긴 길이가 5길이여서 5로 설정 추가설명2) %logger{30} 으로 지정할 시, 긴 패키지명을 압축해준다. 7. 로그 색 설정하기 %highlight를 이용하여 로그 레벨에 따른 색을 줄수 있다. %black, %red, %green, %yellow, %blue, %magenta, %cyan, %white, %gray, %boldRed, %boldGreen, %boldYellow, %boldBlue, %boldMagenta, %boldCya.. 2023. 7. 27.