테스트 할때 클래스 값주는 방법을 배워서 기록 남겨둠!!!
@Builder
스프링 부트에서 요놈은 참 편리.....어노테이션이 다~ 그렇긴 하다!
@Getter
@Setter
@Builder
@NoArgsConstructor //JPA나 json parser 쓸때 꼭있어야하고
@AllArgsConstructor //생성자를 직접 선언하고 모든 생성자에 @Builder 쓸거아님...넣어야함/안넘에러
public class 강원도 {
private int 인구수;
private int 가수수;
private spring 시;
private spring 동;
private spring 길;
}
가정하자.......내고향 뽀록난다....다시짜기 귀찮으니 패스!
강원도 k = 강원도.builder()
.인구수(400000)
.가구수(400000)
.시("많은시")
.동("많은동")
.길("여러길")
.build();
이렇게 값을 줄 수 있다.
만약 리스트로 요청한다면.....
List<강원도> kList = List.of(강원도.builder()
.인구수(400000)
.가구수(400000)
.시("많은시")
.동("많은동")
.길("여러길")
.build());
근데 강원도class를 다른 클래스에서 합쳐서 사용한다면....
class 산<T> implement Serialzable {
private spring 명산;
private int 국립공원수;
private List<T> 지역;
}
// 가정하에.....
산<강원도> mountain = 산.<강원도>builder()
.명산("설악산")
.국립공원수(10)
.지역(kList)
.build();
라고 하면 되었음.......나중에 잘 대입하기 위해서 쉽게쉽게 만들어 봤음......
여기서 참고로 Serialzable 은 이분의 글을 참조하면 될듯.....한번읽어서는 이해안됨...ㅋㅋ
/https://nesoy.github.io/articles/2018-04/Java-Serialize
Java의 직렬화(Serialize)란?
nesoy.github.io
난 여기서 enum도 적용한 분의 클래스도 값을 줘야 했다...
public enum 소유자 implements GenericEnum<String> {
COMPANY("C", "기업"),
USER("M", "개인"),
NON_MEMBER("N", "없음");
private final String value;
private final String description;
}
여기서 GenericEnum의 적용 원리는 이분걸 참조 하면 도움될 듯
https://vvshinevv.tistory.com/78
Enum과 Generic 함께 사용하기
개요 코드를 단순하게 만들면서 가독성을 높히기 위한 개발을 하다보면 Enum 타입을 사용하는 것은 흔하게 일어납니다. 또한 if / else 문 사용을 지양하는 방향으로 코드를 만들다 보면 Enum 클래스
vvshinevv.tistory.com
아까 적용한 산 클래스에 적용 해보자...뭐 내용상 안맞지만....나중에 다시 할수만 있으면 되니깐...
class 산<T> implement Serialzable {
private spring 명산;
private int 국립공원수;
private 소유자 owner;
private List<T> 지역;
}
산<강원도> mountain = 산.<강원도>builder()
.명산("설악산")
.국립공원수(10)
.owner(소유자.COMPANY)
.지역(kList)
.build();
이럴때 Builder 로 값을 줄때는 owner(소유자.COMPANY)...쉽지만....이걸 클래스 설정할 때 미리 계산되어야 한다는거....
쉽지 않는 길.....
참고로 같이 쓰였던 어노테이션들....
@Builder.Default 변수윗줄 기재하고 변수의 기본값을 넣어주면 builder로 값을 주지 않아도 초기값을 반환한다.
@SuperBuilder @Builder처럼 어떤 객체의 필드값들을 편하게 지정하기 위해서 사용한다. 다만, super라는 말에서처럼 부모 객체를 상속받는 자식 객체를 만들 때, 부모 객체의 필드값도 지정할 수 있게 하기 위해서 사용한다
만드는 방법은 같은데 부모클래스의 변수값도 같이 적용된다는 것임
@NotNull(message = "장치 타입은 필수값입니다.") 말그래도 null거부!! builder를 할때 너무긴건 빼고 몇개만 추려서 생성했는데 NPE가 뜨길래 왠가 봤더니 저런게 있었다........값을 안주면 반환하지 않겠다는 클래스의 강한집착...!!줘야지 뭐 별수 있나...
junit도 하면서 공부하게 된다.^^
'junit TEST' 카테고리의 다른 글
junit private method ...and void (0) | 2023.02.22 |
---|---|
Test 연습하기 (0) | 2023.02.01 |
TEST 로 --일단은 환경설정과 싸움/..완성시키기 (0) | 2022.11.16 |
JUNIT TEST 하기 (0) | 2022.11.09 |