Как передать параметры в метод публикации в контроллере Spring MVC при выполнении junit?

Я провожу модульное тестирование своих методов контроллера Spring MVC. Ниже приведен мой метод, который я пытаюсь протестировать, поскольку он отлично работает, когда я запускаю свой сервер.

Всякий раз, когда я буду нажимать на страницу index, в браузере будут отображаться три текстовых поля, в которых я ввожу данные и нажимаю кнопку отправки, а затем вызов переходит на addNewServers с правильными значениями.

Теперь мне нужно провести модульное тестирование того же самого:

@RequestMapping(value = "/index", method = RequestMethod.GET)
public Map<String, String> addNewServer() {
    final Map<String, String> model = new LinkedHashMap<String, String>();
    return model;
}

@RequestMapping(value = "/index", method = RequestMethod.POST)
public Map<String, String> addNewServers(@RequestParam String[] servers, @RequestParam String[] address,
    @RequestParam String[] names) {     


}

Ниже приведен мой класс junit:

private MockMvc mockMvc;

@Before
public void setup() throws Exception {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setPrefix("/WEB-INF/views/");
    viewResolver.setSuffix(".jsp");

    this.mockMvc = standaloneSetup(new Controller()).setViewResolvers(viewResolver).build();
}

@Test
public void test04_newServers() throws Exception {

    String[] servers = {"3", "3", "3"};
    String[] ipaddress = {"10,20,30", "40,50,60", "70,80,90"};
    String[] hostnames = {"a,b,c", "d,e,f", "g,h,i"};


    // not sure how would I pass these values to my `addNewServers` method
    // which is a post method call.

}

Кто-нибудь может мне с этим помочь?


person AKIWEB    schedule 04.03.2014    source источник
comment
Вы смотрели на это? stackoverflow.com/questions/9995807/   -  person mttdbrd    schedule 05.03.2014


Ответы (1)


Вам просто нужно использовать API:

mockMvc.perform(post("/index").param("servers", servers)
                              .param("address", ipaddress)
                              .param("names", hostnames))
person JB Nizet    schedule 04.03.2014
comment
А параметры формы? - person Sajad; 21.05.2017