如何跨多个 java 方法验证 REST Assured 请求?

How to validate a REST Assured request across multiple java methods?

我正在使用 Cucumber 编写 REST Assured 测试。

这是我的功能文件:

Given I want to GET a client

When I request a client

Then the status code is "theStatusCode"

And the id returned is "expectedClientId"

在我的特征文件"And"的步骤定义中调用了以下方法

public void validateResponseBody(String expectedClientId){
    RestAssured.given()
    .when()
    .get(completeURL)
    .then()
    .statusCode(Integer.parseInt(theStatusCode))
    .and()
    .body("Client.Id", equalTo(expectedClientId));
}

此方法目前有效,但如何拆分验证?

即我如何才能将其分解以在一种方法中验证状态代码,并在另一种方法中验证客户端 ID 而无需发送两次请求?

保存对变量的响应:

public void validate() {
    ValidatableResponse response = RestAssured.given()
        .when()
        .get(completeURL)
        .then();

    validateStatusCode(response, statusCode);
    validateResponseBody(response, expectedClientId);
}

public void validateStatusCode(ValidatableResponse response, String statusCode) {
    response
        .statusCode(Integer.parseInt(theStatusCode));
}

public void validateResponseBody(ValidatableResponse response, String expectedClientId) {
    response
        .body("Client.Id", equalTo(expectedClientId));
}
I suggest to make changes in Feature File. 
New File should be given below. You don't need a when statement here.
Scenario: I want to GET a client  
Given I request a client  
Then the status code is "theStatusCode"  
And the id returned is "expectedClientId"  

@Given("I request a client$")  
public void validate() 
{ 
ValidatableResponse validatableResponse = RestAssured.given()
        .when()
        .get(completeURL)
        .then();
}  
@Then("the status code is \"([^\"]*)\"$") 
public void validateStatusCode(String statusCode) 
{ 
validatableResponse.assertThat().statusCode(Integer.parseInt(theStatusCode));
} 

@And("the id returned is \"([^\"]*)\"$") 
public void validateClientId(String expectedClientId)
{
validatableResponse.assertThat().body("Client.Id", equalTo(expectedClientId));
}