Тестирование конечной точки с MultiValueMap в качестве параметра - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть конечная точка как:

@RequestMapping(value = "/topics/{topicId}")
public class TopicGateway {
    @PostMapping
    public void generate(@RequestParam MultiValueMap params, HttpServletResponse response) {
        reportFacade.generate(params, response);
    }

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

То, что я сделал сейчас, это просто:

given()
    .pathParam("topicId", 1)
    // here I need to add those MultiValueMap.
    .get(BASE_PATH)
    .then()
    .statusCode(200);

private MultiValueMap<String, String> params(){
    MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
    params.add("param1", "Test");
    params.add("param2", "Another test");
    params.add("param3", "123");
    params.add("param4", "456");
    return params;
}

Я пытался:. formParameters(params()), но, похоже, не работает.

1 Ответ

0 голосов
/ 13 ноября 2018

Я предполагаю, что вы пытаетесь проверить метод POST.Вот код:

given()
   .post(BASE_PATH, params())
   .then()
   .statusCode(200);


private MultiValueMap<String, String> params(){
    MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
    params.add("param1", "Test");
    params.add("param2", "Another test");
    params.add("param3", "123");
    params.add("param4", "456");
    return params;
}

Вы должны изменить метод на post и передать карту в качестве второго аргумента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...