如何在另一种方法中验证Rest-Assured请求?

问题描述 投票:0回答:1

我在dataMap类上开发了Rest-Assured请求,但我需要在另一种方法中验证此请求以调用我的功能的黄瓜步骤。

我的黄瓜特点:

Esquema do Cenario: Criar uma conta valida
        Dado que realizo a chamada no <ambiente> da <api> informando <token_admin> e um email e <senha> novos
        Entao devera retornar <status code>

我试着这样做:

public class dataMap extends tests {

private Response response;
private ValidatableResponse json;
private RequestSpecification request;

    public void criarConta(String srtAmbiente, String srtAPI, String srtToken, String srtSenha) {

        String uriBase = srtAmbiente;
        String Api = srtAPI;

        int length = 15;
        String email = generateRandomEmail(length);
        System.out.println(email);
        Map<String, String> emailContent = new HashMap<String,String>();
        emailContent.put("email", email);
        Map<String, Object> postContent = new HashMap<String,Object>();
        postContent.put("customer", emailContent);
        postContent.put("password", srtSenha);

        request = RestAssured.given().contentType(ContentType.JSON)
                .header("Authorization", "Bearer "+srtToken).with().body(postContent);

        response = request.when().post(uriBase+Api).prettyPeek();

    }

    public void responseCriarContaStatus (String srtStatusCode) {
        json = response.then().statusLine("HTTP/1.1 200 OK");

responseCriarContaStatus方法不起作用。当我将json = response.then().statusLine("HTTP/1.1 200 OK");插入criarConta方法时,代码可以工作。

如何在responseCriarContaStatus方法中验证此请求?

java cucumber rest-assured
1个回答
0
投票

您可以设置Response对象static,并在定义response后,您可以在另一种方法中使用它。我正在分享你自己的方法然后你可以编辑它。如果要求获得成功,statusCode将是200

private static Response response;

public void responseCriarContaStatus (String srtStatusCode) {
        JSONObject json = new JSONObject(response.getBody().asString); 
        Asser.asserEquals(srtStatusCode , json.getString("statusCode"));
© www.soinside.com 2019 - 2024. All rights reserved.