라벨이 junit인 게시물 표시

Spring Boot Admin Server, Client config 설정하기

이미지
 Spring Boot로 많은 프로젝트를 진행하게 됩니다. 많은 모니터링 도구가 있지만, Spring Boot 어플리케이션을 쉽게 모니터링 할 수 있는 방법을 소개하려고 합니다.   코드 중심으로 살펴보겠습니다. 1. 어드민 서버 구축 1-1. 디펜던시 추가 dependencies { // https://mvnrepository.com/artifact/de.codecentric/spring-boot-admin-starter-server implementation 'de.codecentric:spring-boot-admin-starter-server:2.5.4' } 1-2. 어드민 서버 설정 활성화 @SpringBootApplication @EnableAdminServer public class ServerApplication { public static void main (String[] args) { SpringApplication. run (ServerApplication. class, args) ; } } EnableAdminServer를 하면 됩니다. 2. 클라이언트 서버 설정  예제는 book-client, member-client 2가지 클라이언트, member-client가 2개의 인스턴스 실행으로 작성했습니다.  2-1 디펜던시 추가 dependencies { // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web implementation 'org.springframework.boot:spring-boot-starter-web:2.5.4' // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator implementation 'org.spring...

자바 Junit static 함수 Mocking

   지난번에 spring bean을 mocking 하는 코드는 작성했었는데, 이번에는 static함수를 응답을 mocking해보겠습니다. 1. 의존성 주입 testCompile group : 'junit' , name : 'junit' , version : '4.12' testImplementation 'org.mockito:mockito-inline:3.6.0' testImplementation 'org.mockito:mockito-core:3.6.0' testImplementation 'org.easytesting:fest-assert:1.4' static을 mocking하기 위해서는 mockito 3.4버전 이상부터 사용해야 합니다. mockito-inline가 추가되었습니다. (fest-assert는 필수아님) 2. static 함수 클래스 정의 public class AutoIncrement { private static int i = 0 ; public static int getId () { return i ++ ; } } getId를 하면 숫자를 순자적으로 반환하는 함수입니다. 특별한 의미는 없습니다. 3. 테스트 코드 작성 import com.hevia.example.AutoIncrement ; import org.junit. Test ; import org.mockito.MockedStatic ; import org.mockito.Mockito ; import static org.fest.assertions.Assertions.assertThat ; import static org.mockito.BDDMockito.given ; public class MockStaticTest { @Test public void mockStaticTest () { try (MockedStatic<AutoI...

자바 JUnit Mock 테스트

 복잡한 로직의 코드를 작성할때, 리팩토링을 해야할때 잘 짜여진(경우의 수를 반영한) 테스트 코드가 있으면 코드의 결과에 대한 확신이 생깁니다.  이때 Mocking을 활용하면 테스트 코드를 더 원활하게 작성할 수 있습니다. Mocking이란 단위 테스트를 작성할때 데이터베이스와 같이 외부에 의존하지 않고, 실행될 함수를 테스트에 직접 정의하여 대체하는 기법입니다. 1. 의존성 주입 dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' testCompile group : 'junit' , name : 'junit' , version : '4.12' testImplementation 'org.mockito:mockito-core:3.6.0' testImplementation 'org.easytesting:fest-assert:1.4' } mockito를 사용했습니다. fest-assert는 테스트 검증을 쉽게 할 수 있도록 도와줍니다. (필수 아님). lombok나 string-boot는 편의를 위해 사용했습니다. 2. Book관련 클래스 정의 import lombok. AllArgsConstructor ; import lombok. Builder ; import lombok. Getter ; import lombok. ToString ; @AllArgsConstructor @Getter @Builder @ToString public class Book { private Integer id ; private String title ; } 데이터 클래스 입니다. import lombok.extern.slf4j. Slf4j ; import org.springf...