문제

나는 다음과 같은 형식을 가지고있다

public class MyForm {
private Account account;
}

public class Account {
private String firstName;
}
.

firstname 매개 변수를 어떻게 통과합니까? (다음과 같은 접근법이 작동하지 않음)

mockMvc.perform(post("/xyz")
                .param("account.firstName", "John"))
                .andExpect(model().hasErrors())
                .andExpect(view().name("/xyz"))
                .andExpect(status().isOk())
.

도움이 되었습니까?

해결책

마침내이 문제를 해결했습니다.독립 실행 형 설정을 사용하고 있기 때문에 유효성 검사기와 메시지를 정의해야했습니다.

void setupTest() {
        MockitoAnnotations.initMocks(this)

        this.mockMvc = MockMvcBuilders.standaloneSetup(getController())
                .setValidator(getValidator())
                .alwaysDo(MockMvcResultHandlers.print())
                .build()
    }

    private MessageSource getMessageSource() {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();

        messageSource.setBasename("messages");
        messageSource.setUseCodeAsDefaultMessage(true);

        return messageSource;
    }

    private LocalValidatorFactoryBean getValidator() {
        def validator = new LocalValidatorFactoryBean()
        validator.setValidationMessageSource(getMessageSource());

        return validator;
    }
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top