0

//下面提到的代码不适用于google api中的断言

import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;
public class Base {

public static void main(String[] args) {
    //URL --> End Point --> BaseURL/Resources/Format?Parameters
    // BaseURL or Host
    RestAssured.baseURI = "https://maps.googleapis.com";
    given().
            param("location","33.8670522,151.1957362").
            param("radius","500").
            param("key","AIzaSyDahQkqdxmUihrC0_3Gi7hRBZQWDrV1xI0").
            when().
            get("/maps/api/place/nearbysearch/json").
            then().assertThat().statusCode(200).and().contentType(ContentType.JSON).and().
            body("results[0].geometry.location.lat", equalTo("-33.8710748"));            
}
}

我收到以下错误:java.lang.AssertionError: 1 期望失败。JSON 路径结果[0].geometry.location.lat 不匹配。预期:-33.8710748 实际:空

还可以找到原始响应:

https://jsoneditoronline.org/?id=7f9b24fa65f044fa9c4f48500a6c9bbe

4

1 回答 1

1

看起来,Given Piece of Code 仅是正确的(我希望提及所有适用的标头)并且可能无法从 API 中检索到状态码为 200 的有效响应。请提取响应并将其存储在一个变量中以进行调试。

请检查下面的调试。

   public static void main(String[] args) {
    //URL --> End Point --> BaseURL/Resources/Format?Parameters
    // BaseURL or Host
    RestAssured.baseURI = "https://maps.googleapis.com";
    String result=given().
            param("location","33.8670522,151.1957362").
            param("radius","500").
            param("key","AIzaSyDahQkqdxmUihrC0_3Gi7hRBZQWDrV1xI0").
            when().
            get("/maps/api/place/nearbysearch/json").
            then().assertThat().statusCode(200).extract().asString();;

    System.out.println(" API Response :"+ result);
}
于 2018-06-02T14:38:45.347 回答