naver / fixture-monkey

Let Fixture Monkey generate test instances including edge cases automatically
https://naver.github.io/fixture-monkey
Apache License 2.0
575 stars 90 forks source link

복잡한 타입 초기화 중 에러 #1047

Closed morishjs closed 2 months ago

morishjs commented 2 months ago

안녕하세요.

프로젝트 내부적으로

org.locationtech.jts.geom.Point 의 타입의 필드를 사용하고 있습니다.

아래의 재현 가능한 레포지토리에서 실행해보시면,

Duplicate key null (attempted merging values coordinate and x) java.lang.IllegalStateException: Duplicate key null (attempted merging values coordinate and x)

이런 에러메시지가 발생하는데 혹시 bypass 할 수 있는 방법 알려주시면 감사하겠습니다.

재현 가능한 링크

링크 클론 후 TestTest.java 실행해보면 재현됩니다!

seongahjo commented 2 months ago

@morishjs 안녕하세요. 익명 객체를 생성해주는 기능때문에 발생하는 오류로 FixtureMonkeyBuilder에서 아래 옵션을 추가하시면 생성이 가능합니다.

.plugin(new InterfacePlugin().useAnonymousArbitraryIntrospector(false))
.pushPropertyGenerator(
        new MatcherOperator<>(
            p -> Modifier.isInterface(Types.getActualType(p.getType()).getModifiers()),
            p -> Collections.emptyList()
        )
)

참고차 공유드리면 1.1.0부터는 기본 설정으로 익명 객체를 생성하지 않을 예정입니다.

혹시 문제가 있으시면 말씀해주세요!

감사합니다.