放参数忽略放心

时间:2013-07-29 12:49:38

标签: java rest-assured

(已解决):那是因为PUT的默认参数类型是请求参数而不是表单参数。更改"参数(..)" to" 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) {
}

问题: 在我的JUnit测试中执行PUT时,参数" name"和" URL"'服务器上的值为null(图1)。如果我改变" .put()" to" .post()"在JUnit测试和更改" @ PUT"到" @POST"在服务器上的参数'价值是正确的(图2)。此外,在AJAX中使用PUT时,参数会获得正确的值,这意味着问题不是来自服务器。

我正在使用 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) {
}

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

这是当前版本的RestAssured中的一个错误。 1.8.1 See here