본문 바로가기
반응형

공부378

[java] objectMapper로 object->string(json) 변경 시 LocalDate 를 yyyy-MM-dd 포멧하기 DTO에 저장되어 있는 값을 Json (String) 형태로 변환하려고 할 때 찾은게 ObjectMapper 이다. 그런데 ObjectMapper 를 그냥 사용하면 보기편한 날짜형태가 아닌, 다음과 같은 형태로 변환된다. "createdDt":{"year":2020,"month":"FEBRUARY","monthValue":2,"dayOfMonth":18,"dayOfWeek":"TUESDAY","leapYear":true,"dayOfYear":49,"era":"CE","chronology":{"id":"ISO","calendarType":"iso8601"} 테스트 환경을 위해 2개의 오브젝트를 생성했다 import java.time.LocalDate; public class TestDto { private.. 2020. 2. 19.
[java] NoSuchMethodError MockitoLogger 에러가 날 때 MockitoExtension.class 를 이용한 단위테스트를 신규작성하다 다음 에러가 발생 (정확히는 @Mock을 쓰려고 한건데...) java.lang.NoSuchMethodError: org.mockito.internal.configuration.plugins.Plugins.getMockitoLogger()Lorg/mockito/plugins/MockitoLogger; at org.mockito.junit.jupiter.MockitoExtension.beforeEach(MockitoExtension.java:172) ... 확인해보니 mockito-core 가 2.24.0 이상으로 변경하니 해결됐다는 말을 봤다. 내 경우도 확인해보니 mockito-junit-jupiter:3.1.0 에 따라온 2.. 2020. 2. 18.
[intellij] junit 으로 작성한 테스트가 gradle 로 실행될때 Junit 으로 작성된 클래스를 GUI로 실행하면 콘솔창에 다음과 같이 실행된다. Testing started at 6:45 오전 ... > Task :cleanTest UP-TO-DATE > Task :compileJava UP-TO-DATE > Task :processResources NO-SOURCE > Task :classes UP-TO-DATE > Task :compileTestJava UP-TO-DATE > Task :processTestResources NO-SOURCE > Task :testClasses UP-TO-DATE > Task :junitPlatformTest FAILED 내용을 확인하면 Gradle 로 수행되었다.. runnable 설정을 봐도 gradle로 되어있다 이는 Gra.. 2020. 2. 13.
[springboot] 데이터 사용 Service를 mockito로 테스트하기 mockito는 단위 테스트를 위한 java mocking framework이다. 어디다 쓰냐면... 단위 테스트를 해야 하는데 데이터베이스에서 데이터를 가져와야 할 경우 테스트 환경에 따라 각각 다른 데이터가 조회될 수 있는데 예를 들어 A라는 고객이 1번_테스트_데이터베이스에서는 ID가 1인데 2번_테스트_데이터베이스에서는 5번일 수 있다. 이럴 경우 상황에 따라선 테스트의 단위가 깨지게 되는데, mockito를 이용하면 입력한 값을 리턴하게 되므로 동일한 환경으로 테스트할 수 있게 된다. mockito를 사용하려면 dependencies를 추가해야 하지만 SpringBoot를 사용하면 gradle에 spring-boot-starter-test를 추가하게 되는데, 그 안에 mockito-junit-j.. 2020. 2. 12.
[spring security oauth] 403이 아닌 406 에러가 나는 경우 (Accept 설정에 따른 문제) spring security oauth 로 인증요청 할 경우 에러가 2가지 있다 ​ 401 Unauthorized 403 FORBIDDEN(Access Denied) ​ 401의 경우 로그인 실패시, 403은 인증한 토큰이 잘못되었을 경우 발생한다. ​ 사내에서 사용하고 있는 API 헤더 2가지 옵션인 Accept와 Content-Type 를 json으로 통신하되 커스텀하게 붙인게 있다 Content-Type: application/json+custom Accept: application/json+custom 이게 정상으로 처리가 되었을 경우 문제가 되지 않았는데 에러가 발생할 때 403 에러를 리턴해야 하는데 406 에러를 리턴했다. HTTP 상태 406 – 받아들일 수 없음(Not Acceptable.. 2020. 1. 30.
[java] builder 패턴, 객체를 안전하게 생성하기 객체를 생성할 때 파라미터가 많으면 빌더패턴을 사용 시 생성이 편리하다. 우선 ​ 1. 순서에 상관없이 객체생성이 가능하고 2. 인자가 많아도 안전하게 생성 ​ 등 장점이 있다. ​ 그런데 빌더패턴을 쓰다보면 한가지 걸리는 것이 있다. 바로 필수값 체크(Not null)다. ​ Book 이라는 객체가 있다고 해보자. 진행의 편의성을 위해 Lombok 을 이용했다. import lombok.Builder; import lombok.ToString; @ToString public class Book { private String bookName; private String author; private Integer price; @Builder public Book(String bookName, String .. 2020. 1. 29.
반응형