2017-12-14 18 views
0

次の応答の検証で停止しました。JSON KARATEによる応答の検証

私が空手を使用してリクエストをすると、次の応答が得られます。私はそれを検証したいと思います。

My Response is: { 
     "response": [ 
     { 
      "tagName": "CaseTag", 
      "value": "CaseTagMckAuto_TagValueOne", 
      "entityType": "Case", 
      "partitionId": 1, 
      "appId": 1, 
      "id": 46, 
      "tagId": 1, 
      "entityId": 1 
     }, 
     { 
      "tagName": "CaseTag", 
      "value": "CaseTagMckAuto_TagValue", 
      "entityType": "Case", 
      "partitionId": 1, 
      "appId": 1, 
      "id": 45, 
      "tagId": 1, 
      "entityId": 1 
     } 
     ] 
    } 

私が試した:

And match response[0].tagName contains ['CaseTag'] 


Then match each res contains 
    ... 
      { 
       {tagName: 'CaseTag', value: 'CaseTagMckAuto_TagValueOne', 
       entityType: 'Case', partitionId: 1, appId: 1,id: 46, 
       tagId: 1, entityId:1} 
      } 
    ... 

And match response[0] == {tagName: 'CaseTag', value: 
     'CaseTagMckAuto_TagValueOne', entityType: 'Case', partitionId: 1, 
     appId: 1,id: 46, tagId: 1, entityId:1} 

All three statements fails json it is not valid json array when i try giving 

And match response == {tagName: 'CaseTag', value: 
     'CaseTagMckAuto_TagValueOne', entityType: 'Case', partitionId: 1, 
     appId: 1,id: 46, tagId: 1, entityId:1}   

それはそれは文字列ではないと言います。 この発言権を検証するために手伝ってください。

答えて

1

ネスティングと混同しているように見えます。ここでは私の作品のサンプルだけで何のHTTPを必要としない、機能ファイルにこれを貼り付ける、次のとおりです。

* def response = 
""" 
[ 
    { 
     "tagName":"CaseTag", 
     "value":"CaseTagMckAuto_TagValueOne", 
     "entityType":"Case", 
     "partitionId":1, 
     "appId":1, 
     "id":46, 
     "tagId":1, 
     "entityId":1 
    }, 
    { 
     "tagName":"CaseTag", 
     "value":"CaseTagMckAuto_TagValue", 
     "entityType":"Case", 
     "partitionId":1, 
     "appId":1, 
     "id":45, 
     "tagId":1, 
     "entityId":1 
    } 
] 
""" 
* match response == '#[2]' 
* match response[0].tagName == 'CaseTag' 
* match each response == { tagName: 'CaseTag', value: '#string', entityType: 'Case', partitionId: 1, appId: 1, id: '#number', tagId: 1, entityId: 1 } 
* match each response contains { tagName: 'CaseTag', entityType: 'Case', partitionId: 1, appId: 1, tagId: 1, entityId: 1 } 

は、あなたのJSONはその中responseを持っているかを参照してください。これが実際の場合は、

* def response = response.response 
のようにするには、 matchを使用する前にこれを行うだけです。
関連する問題