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

RESTAssured recieve one of two possible status codes

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

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

但现在它也可以提供代码 404,这被认为是有效输出。我需要我的测试来检查状态代码是否是两者之一,但我无法全神贯注于如何真正做到这一点。你能指出我该怎么做吗?或者如果不可能的话?

更新:

.get(getRestOperationPath()) returns Response -> 你可以获取状态码并进行比较。已关闭。

.get(getRestOperationPath())returnsResponse。 你可以.getStatusCode()比较一下。关闭。

回答只是为了结束问题。

您也可以使用 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))); 

如果你想在正文中检查多个错误代码,你可以选择

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")));