如何使用“assertThat()。body(”email“,是(email));验证一些响应?

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

我正在尝试验证我正在开发自动化测试的POST API的JSON响应。

public void criarConta(String srtAmbiente, String srtAPI, String srtToken, String srtSenha) {
            System.out.println(srtAmbiente+srtAPI);
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            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);
            RestAssured.given().contentType(ContentType.JSON)
            .header("Authorization", "Bearer "+srtToken)
            .with().body(postContent)
            .when().post(srtAmbiente+srtAPI).prettyPeek()
            .then().statusCode(200).contentType(ContentType.JSON)
            .assertThat().body("email", *is*(email));
    }

但我的代码不能识别最后一行的“IS”,我试图将其更改为“ContainsString”,“equalsTo”,但它返回相同的错误。我不知道是依赖还是一些导入。你能帮助我吗?谢谢!

java rest-assured
1个回答
1
投票

你需要静态导入is()

import static org.hamcrest.CoreMatchers.is;

RestAssured.given().contentType(ContentType.JSON)
                .header("Authorization", "Bearer "+srtToken)
                .with().body(postContent)
                .when().post(srtAmbiente+srtAPI).prettyPeek()
                .then().statusCode(200).contentType(ContentType.JSON)
                .assertThat().body("email", is(email));
    }

(或)使用import org.hamcrest.CoreMatchers;CoreMatchers.is(email)

© www.soinside.com 2019 - 2024. All rights reserved.