我有RESTAssured的测试(!)代码,它检查REST端点是否返回0作为状态代码;
given()
.contentType(CONTENT_TYPE_APPLICATION_JSON)
.when()
.get(getRestOperationPath())
.then()
.statusCode(STATUS_CODE_OK);
但现在有可能它还可以提供代码404,这被认为是有效的输出。我需要我的测试来检查状态代码是否是其中之一,但我不能完全了解如何实际执行此操作。你能指出我怎么做,或者不可能吗?
UPD:
.get(getRestOperationPath())返回Response - >你可以获得状态代码并进行比较。闭合。
答案 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")));