параметры ввода игнорируются, будьте уверены

(решено): это потому, что типы параметров по умолчанию для PUT - это параметры запроса, а не параметры формы. Измените «параметры (..)» на «formParameters (..)», и это сработает.

Мой код: тест JUNIT: (рисунок 1)

expect().statusCode(Status.NO_CONTENT.getStatusCode())
        .given()
        .parameters("name", name, "URL", URL)
        .cookie(cookie_name, newapi_session_id)
        .put("/IfdOrganization/"+orgGuid);

Код сервера: (рисунок 1)

@PUT @Path("/IfdOrganization/{guid}") @Produces({APPLICATION_XML, APPLICATION_JSON})
public void update(@PathParam("guid") String guid, @FormParam("name") String name,@FormParam("URL") String URL,@CookieParam(session_cookie_name) String sessionId, @Context HttpHeaders headers) {
}

Проблема: при выполнении PUT в моем тесте JUnit параметры «имя» и «URL» имеют значение null на сервере (рис. 1). Если я заменю «.put()» на «.post()» в тесте JUnit и заменю «@PUT» на «@POST» на сервере, значение параметров будет правильным (рис. 2). Кроме того, при использовании PUT в AJAX параметры получают правильное значение, что означает, что проблема не исходит от сервера.

Я использую eclipse kepler, windows 8 и rest-assured-1.8.0.

Тест JUNIT: (рисунок 2)

expect().statusCode(Status.NO_CONTENT.getStatusCode())
            .given()
            .parameters("name", name, "URL", URL)
            .cookie(cookie_name, newapi_session_id)
            .post("/IfdOrganization/"+orgGuid);

Код сервера: (рисунок 2)

@POST @Path("/IfdOrganization/{guid}") @Produces({APPLICATION_XML, APPLICATION_JSON})
public void update(@PathParam("guid") String guid, @FormParam("name") String name,@FormParam("URL") String URL,@CookieParam(session_cookie_name) String sessionId, @Context HttpHeaders headers) {
}

Любая помощь приветствуется


person user2630328    schedule 29.07.2013    source источник


Ответы (1)


Это ошибка текущей версии RestAssured. 1.8.1 см. здесь

person mihai.ciorobea    schedule 06.08.2013