2016-12-13 12 views
0

REST-assuredを使用して簡単なテストを行う必要があります。これは http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway+Mountain+View+CA&sensor=falseGoogle Maps APIで安心して簡単にテストする

Google MapsのAPIへのリンクであり、私はその要求のためのstatusCodeをが正しい(200)とフィールドであることを確認する必要があります。 ステータス:「OK」 タイプは「にstreet_address」 国が「US」であります

私はこのコードを書いたが、それは、部分的に

public class RestTest { 
@Test 
public void Test1() { 


    RestAssured.get("http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway+Mountain+View+CA&sensor=false").then(). 
      statusCode(200). 
      contentType(ContentType.JSON). 
      body("status", equalTo("OK")). 
      body("results.types", equalTo("street_address")). 
      body("results.address_components.short_name", equalTo("US")); 

チェックステータスコード、コンテンツタイプとボディ(ステータス= OK)の最初の部分がうまく機能し、試験に合格するが、私は最後の二つの身体に問題がありましたが取り組んでいますテスト、彼らは失敗していると私は得る:

JSON path results.types doesn't match. 
Expected: street_address 
Actual: [[street_address]] 

答えて

0

応答結果は配列であり、address_componentsも配列です。 jsonパスでは、要素のインデックスを指定する必要があります。以下の解決法が有効です。あなたは内の要素のインデックスを追加必要

@Test 
public void Test1() { 
RestAssured.get("http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway+Mountain+View+CA&sensor=false").then(). 
      statusCode(200). 
      contentType(ContentType.JSON). 
      body("status", equalTo("OK")). 
    body("results[0].types", contains("street_address")). 
    body("results[0].address_components[5].short_name", equalTo("US")); 

}

+0

'体( "結果[0] .types"、( "にstreet_address")を含んでいます)。'それは 'body( "results [0] .types [0]"、contains( "street_address"))のようなものです。その後、それは完全に動作しています。多くのおかげです。 – cbronson1

関連する問題