Skip to content

ValidationPlugin 사용 시, validation에 반하는 필드 값 세팅 문의 #1215

@kjh03160

Description

@kjh03160

Describe your question

안녕하세요.
항상 FixtureMonkey 덕분에 편한 테스트 코드를 작성하고 있습니다.

JavaxValidationPlugin 혹은 JakartaValidationPlugin을 사용 시, validation에 맞지 않은 객체 필드값 생성 방법에 대해 문의드립니다.

public record TestA(
    @NotNull
    String fieldA,
    @NotEmpty
    String fieldB
) {

}

위의 객체를 request body로 받는 controller test를 하고자 합니다.
이때, fieldA가 blank인 경우 / fieldB가 empty 인 경우를 나눠서 테스트하고자 하는데요.

    private final FixtureMonkey fixtureMonkey = FixtureMonkey.builder()
        .objectIntrospector(BuilderArbitraryIntrospector.INSTANCE)
        .plugin(new JavaxValidationPlugin())
        .defaultNotNull(true)
        .build();

위와 같이 fixtureMonkey를 선언하고,

TestA request = fixtureMonkey.giveMeBuilder(TestA.class)
            .setNull("fieldA")
            .sample();

이렇게 생성할 경우,
Generate type "java.lang.String" is failed due to property "fieldA".
에러가 발생합니다.

validationPlugin을 제거하고 하면 되지만, 특정 필드만 세팅하고 나머지 필드는 validation을 준수하는 객체를 만들고자 한다면,
필드 수가 많아짐에따라 validation을 통과하는 조건을 명시해주는 부분이 많아질 것 같은데요.

혹시 이런 상황에서 가능한 좋은 방법이나 가이드가 있을까요??

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions