В REST Assured, как мне использовать карту параметров?

Выпуск:

Response resp = given().headers(headerElements).param("language", "en").and().param("currency", "***").and()
            .param("destination", "**").and().param("theme", Arrays.asList(arr)).and().param("order", "1").and()
            .param("partner", "***").and().param("pageNumber", "1").and().param("pageSize", "20").when().get(uri);

Это работает совершенно нормально и дает мне желаемый результат для дальнейшего утверждения.

Но если я отправлю параметры в виде карты, это не даст мне желаемого результата.

Response resp = given().headers(headerElements).params(m).when().get(uri);

m.put("language", "en");
m.put("currency", "**");
m.put("destination", "***");
m.put("theme", Arrays.asList(theme_list_1));
m.put("order", "1");
m.put("partner", "***");
m.put("pageSize", "20");
m.put("pageNumber", "1");

0 ответов

Согласно официальной документации, будьте уверены, существует способ передачи нескольких значений для одного параметра, НО НЕТ способ передачи самих пар ключ-значение.

[ https://github.com/rest-assured/rest-assured/wiki/Usage

Тем не менее, вы можете передать несколько значений в виде строки; как это:

.param("language", "en", "currency", "**", "destination", "***") 

Глядя на мои тесты и ваше решение кажется правильным. Единственное отличие, которое я вижу, это значения в вашем первом запросе

.param("currency", "***").and().param("destination", "**")

со второго запроса

m.put("currency", "**");
m.put("destination", "***");

Валюта и пункт назначения имеют разное количество *. Возможно, в этом может быть проблема?

Другие вопросы по тегам