FixtureMonkey
소개
Fixture Monkey
Fixture Monkey는 테스트 객체를 쉽게 생성하고 조작할 수 있도록 고안된 Java 및 Kotlin 라이브러리입니다.
이 라이브러리는 테스트 작성을 간편하게 하기 위해 필요한 테스트 픽스처를 손쉽게 생성하는 데 중점을 두고 있습니다. 기본적이거나 복잡한 테스트 픽스처를 다루고 있더라도, Fixture Monkey는 필요한 테스트 객체를 쉽게 생성하고 원하는 구성에 맞게 손쉽게 수정할 수 있도록 도와줍니다.
Fixture Monkey를 활용하여 JVM 테스트를 간결하고 안전하게 수행하세요.
요약하면?
테스트를 하면서 만들어야 하는 pojo 생성을 도와주는 친구
종속성
| 종속성 | 설명 |
|---|---|
| fixture-monkey | fixture monkey 코어 라이브러리 |
| fixture-monkey-starter | fixture monkey 시작 패키지 |
| fixture-monkey-kotlin | Kotlin 지원 |
| fixture-monkey-starter-kotlin | Kotlin 환경을 위한 시작 패키지 |
| fixture-monkey-jackson | Jackson 지원 |
| fixture-monkey-jakarta-validation | Jakarta validation 지원 |
| fixture-monkey-javax-validation | Javax validation 지원 |
| fixture-monkey-mockito | Mockito 지원 |
| fixture-monkey-autoparams | Autoparams 지원 |
왜 필요했을까?
- 개인적으로는
record로 dto를 만들면서builder없이 생성자만으로 운용하면서 slice 테스트 시 controller로 전달할 적당한 값을 쉽게 만들고자 할 때였다.
Introspector
- 객체 생성 방법을 지정한다.
- BeanArbitraryIntrospector: setter로 생성한다.
NoArgConstructor,setter가 필요- ConstructorPropertiesArbitraryIntrospector: 생성자 주입
- FieldReflectionArbitraryIntrospector: 필드 리플렉션 (setter도 없고, noArgContructor만 있다면?)
- BuilderArbitraryIntrospector: 빌더를 사용해서
- FailoverArbitraryIntrospector: 위의 생성 방법을 순서를 정해서 실패하면 다음 방식으로 생성할 수 있도록 유도할 수도 있다.
주요 메소드
- giveMeOne() : 대략 초기화한 해당 클래스로 만든 인스턴스 하나 주세요
- giveMe() : 대략 초기화한 해당 클래스로 만든 인스턴스 n개 주세요
- giveMeBuilder() : : 대략 초기화한 해당 클래스로 만든 인스턴스 하나 주세요 근데 빌더로 받아서 몇 군데는 제가
set()으로 채워 넣을래요 - giveMeArbitrary(): Arbitrary하나 넘겨준 클래스로 말아 주세요.
! 모든 내용을 기술하지는 않고 간략하게 적어 놓았으므로 document 참고하기