Я автоматизирую API Google Места, используя предоставленные гарантии (Java), и у меня возникают проблемы с моими результатами, которые я, кажется, не понимаю.
Так, в основном, когда я использую почтальон для выполнения запроса GET для следующего URL:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=1500&type=restaurant&keyword=cruise&key=AIzaSyDWz5aGXygtrt3hsn99yXv_oocw09PSOH
Выводит результаты так:
"html_attributions": [],
"results": [
{
"geometry": {
"location": {
"lat": -33.8585858,
"lng": 151.2100415
},
"viewport": {
"northeast": {
"lat": -33.85723597010728,
"lng": 151.2113913298927
},
"southwest": {
"lat": -33.85993562989272,
"lng": 151.2086916701072
}
}
},
"icon": "https://maps.gstatic.com/mapfiles/place_api/icons/bar-71.png",
"id": "8e980ad0c819c33cdb1cea31e72d654ca61a7065",
"name": "Cruise Bar, Restaurant & Events",
"opening_hours": {
"open_now": true,
"weekday_text": []
},
... //more json
}
Однако, когда я проверяю ответ на этот запрос, я уверен, что в моем утверждении есть ошибка. В нем говорится:
Exception in thread "main" java.lang.AssertionError: 1 expectation failed.
JSON path results[0].geometry.viewport.northeast.lat doesn't match.
Expected: -33.85723597010728
Actual: null
Я не уверен, почему «Actual» отображает ноль, так как почтальон показывает, что есть ответ, и кажется, что мой код правильный и проверяет правильное место для ответа:
package rest.basic.testing;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import static io.restassured.RestAssured.given;
import static io.restassured.RestAssured.when;
import static org.hamcrest.Matchers.equalTo;
public class GetRequestSample {
//Full URL
/*https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362
&radius=1500&type=restaurant&keyword=cruise&key=AIzaSyDWz5aGXygtrt3hsn99yXv_oocw09PSOHE */
//BaseURI
static String baseURI = "https://maps.googleapis.com";
public static void main(String[] args) {
searchPlaceInGoogle();
}
public static void searchPlaceInGoogle() {
RestAssured.baseURI = baseURI;
//In the given() we put the parameters which you can see by matching the below with the full URL displayed above
given()
.param("location", "33.8670522,151.1957362")
.param("radius", "1500")
.param("type", "restaurant")
.param("key", "AIzaSyDWz5aGXygtrt3hsn99yXv_oocw09PSOHE");
//In the when we place in our resources which is after the url and before the ?
//In the then is our assertions
when()
.get("maps/api/place/nearbysearch/json")
.then().assertThat().statusCode(200).and()
.contentType(ContentType.JSON).and()
.body("results[0].geometry.viewport.northeast.lat", equalTo("-33.85723597010728"));
//To prove the code above is running successfully
System.out.println("Request is executed successful");
}
}
Кто-нибудь может понять, почему фактический результат показывает ноль?