2017-10-16 1 views
0

Ceci est la réponse (sorte de)RestAssured ne peut pas faire le travail de containsString

{ 
    "Cats": [ 
     { 
     "Code": "XXXX", 
     "Ven": {   
      "Description": "Any" 
     }, 

     }, 
     "Rate": { 
      "Actual": { 
       "Amount": "XXX", 
       "Currency": "USD" 
      }, 
      "Token": "Cg..........................................", 

     { 
     "Code2": "2XXXX", 
     "Vend": { 
      "Code": "2X", 
      "Description": "aNY2" 
     }, 

      "Token": "Cg...................................", 

} 

Je dois vérifier si la réponse contient la valeur de jeton et si cette valeur symbolique contient une certaine chaîne, c'est le code

Response responseshop = given().header("Authorization", "Basic 
    XXXXXXXXXXX=").header("accept-version","2.0.0").header("Accept", 
    "application/xml"). 
      param("Location", "Geocode,XX.XXXXXX,-XX.XXXXXX"). 
      param("Pick", "2017-12-12"). 
      param("Drop", "2017-12-15").    
      get("/cats/shop?AppKey=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); 
     responseshop.then().log().all(). 
      statusCode(200).    
        body("root.Cats.Rate.Token", containsString("Cg")); 
      System.out.println("This is the Response"); 
      System.out.println(responseshop);    
      String Token =responseshop.path("root.Cats.Rate.Token"); 
      System.out.println("This is the Token"); 
      System.out.println(Token); 

BTW la réponse est imprimé et il passe également la vérification de l'état 200, Mais Im obtenir cette erreur d'assertion maintes et maintes fois:

java.lang.AssertionError: 1 expectation failed. 
XML path root.Cats.Rate.Token doesn't match. 
Expected: a string containing "Cg" 
Actual: 
Cg........................ 

Im nouveau avec restassured, ai-je raté quelque chose. Merci!

Répondre

0

Je pense que l'un des problèmes est que vous avez une réponse JSON et que vous voulez vérifier un contenu xml comme dans l'en-tête que vous définissez dans l'en-tête "Accept" comme "application/xml". Essayez avec "application/json" et vérifiez votre jsonpath aussi car il est aussi malodorant. Si vous ne pouvez pas partager le json de votre, vous essayez d'évaluer et de corriger jsonpath via http://jsonpath.com/ comme si vous pouviez avoir un enregistrement multile sous le tableau Cats cela devrait ressembler à celui du premier elem: "Cats [0] ..Token "