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