RESTAureured收到两个可能的状态代码之一

时间:2016-08-02 07:51:16

标签: java spring rest rest-assured

我有RESTAssured的测试(!)代码,它检查REST端点是否返回0作为状态代码;

     given()
        .contentType(CONTENT_TYPE_APPLICATION_JSON)
    .when()
        .get(getRestOperationPath())
    .then()
        .statusCode(STATUS_CODE_OK); 

但现在有可能它还可以提供代码404,这被认为是有效的输出。我需要我的测试来检查状态代码是否是其中之一,但我不能完全了解如何实际执行此操作。你能指出我怎么做,或者不可能吗?

UPD:

.get(getRestOperationPath())返回Response - >你可以获得状态代码并进行比较。闭合。

3 个答案:

答案 0 :(得分:4)

您也可以使用Hamcrest匹配器执行此操作,而不将响应提取到单独的变量中。

您可以使用anyOf()is()

的组合
import static org.hamcrest.Matchers.anyOf;
import static org.hamcrest.Matchers.is;

...

given()
    .contentType(CONTENT_TYPE_APPLICATION_JSON)
.when()
    .get(getRestOperationPath())
.then()
    .statusCode(anyOf(is(STATUS_CODE_OK),is(STATUS_CODE_NOT_FOUND))); 

答案 1 :(得分:1)

.get(getRestOperationPath())返回Response。 您可以.getStatusCode()进行比较。闭合。

回答问题。

答案 2 :(得分:0)

如果要检查正文中的多个错误代码,则可以选择

import static org.hamcrest.CoreMatchers.anyOf;
import static org.hamcrest.CoreMatchers.is;

response
   .jsonPath()
   .getString("errorCode")
   .equals(
      anyOf(is("E_001"),
            is("E_002"),
            is("E_003")));