Spring MockMVC Passage des paramètres de forme imbriquée
-
21-12-2019 - |
Question
J'ai le formulaire suivant
public class MyForm {
private Account account;
}
public class Account {
private String firstName;
}
Comment passez-moi le paramètre prénom prénom? (L'approche suivante ne fonctionne pas)
mockMvc.perform(post("/xyz")
.param("account.firstName", "John"))
.andExpect(model().hasErrors())
.andExpect(view().name("/xyz"))
.andExpect(status().isOk())
La solution
Enfin j'ai résolu ce problème.Depuis que j'utilise une configuration autonome, je devais définir le validateur et la messagerie.
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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow