2017-12-28 53 views
0

テスト["Valid schema"] = tv4.validate(jsonData、schema);スキーマに "error"と "responseType"がない場合でも、渡されます。レスポンスとスキーマの両方がJSONスキーマと一致していることを確認する方法POSTMAN - 不正な応答データであっても、スキーマ検証が渡されます。

私は郵便配達のPOSTリクエストを打ったとき、以下は郵便配達に郵便配達で

{ 
    "statusCode": 400, 
    "error": "Bad Request", 
    "message": "Email/Phone number not found", 
    "responseType": "EMAIL_NOT_FOUND", 
    "arabicMessage": "البريد الإلكتروني/رقم الهاتف غير موجود" 
    } 

テストのレスポンスボディです

var jsonData=JSON.parse(responseBody) 
var schema ={ 
    "statusCode": {"type":"integer"}, 
    "message": {"type":"string"}, 
    "arabicMessage":{"type":"string"}, 
    "data": { 
     "accessToken": {"type":"string"}, 
     "userDetails": { 
      "_id": {"type":"string"}, 
      "deviceType": {"type":"string"}, 
      "countryCode": {"type":"string"}, 
      "OTPCode": {"type":"integer"}, 
      "invitationCode": {"type":"string"}, 
      "availableCredits": {"type":"integer"}, 
      "totalBookings": {"type":"integer"}, 
      "promoCodes": {"type":"array"}, 
      "updatedAt": {"type":"string"}, 
      "createdAt": {"type":"string"}, 
      "language": {"type":"string"}, 
      "IsDeleted": {"type":"boolean"}, 
      "IsVerified": {"type":"boolean"}, 
      "IsBlock": {"type":"boolean"}, 
      "customerAddresses": {"type":"array"}, 
      "address":{"type":"string"}, 
      "phoneVerified": {"type":"boolean"}, 
      "currentLocation": { 
       "type": "Point", 
       "coordinates": [ 
        {"type":"integer"}, 
        {"type":"integer"} 
       ] 
      }, 
      "appVersion": {"type":"integer"}, 
      "profilePicURL": { 
       "thumbnail": {"type":"string"}, 
       "original": {"type":"string"} 
      }, 
      "password": {"type":"string"}, 
      "socialId": {"type":"string"}, 
      "phoneNo": {"type":"integer"}, 
      "email": {"type":"string"}, 
      "LastName": {"type":"string"}, 
      "firstName": {"type":"string"}, 
      "__v": {"type":"integer"}, 
      "referralCode": {"type":"string"}, 
      "accessToken": {"type":"string"}, 
      "deviceToken": {"type":"string"} 
     }, 
     "updateAvailable": {"type":"boolean"}, 
     "stateCallBookingIds": {"type":"array"}, 
     "forceUpdate": {"type":"boolean"} 
    } 
}; 
tests["Valid schema"] = tv4.validate(jsonData, schema); 
//here the test is passing even with invalid jsonData which is the data      
console.log("Validation failed: ", tv4.error); 
+0

我々はそれが反対検証していますかを見ることができるように、あなたは郵便配達出力の画像を投稿してもらえますか? –

+0

FYI上記の応答本体はPostman出力@DannyDainton –

答えて

2

tv4についてのポストマンのgithubのアカウントにopen issuesがたくさんあります。モジュール。

あなたのjsonDataがあなたのスキーマと異なる可能性がありますか?SO hereについて同様の質問がありますか?

これはtv4 githubページのリンクからexampleです。

"title": "Person", 
"type": "object", 
"properties": { 
    "firstName": { 
     "type": "string" 
    }, 
    "lastName": { 
     "type": "string" 
    }, 
    "age": { 
     "description": "Age in years", 
     "type": "integer", 
     "minimum": 0 
    } 
}, 
"required": ["firstName", "lastName"] 
} 

requiredというフィールドを追加できますか?

+0

です。ありがとう、私は再び "プロパティ"と "必須"を使用して試しました。それは今働いている。 –

+0

@RanjithKasuクール、質問に答えましたか? –

1

他の人に役立つ場合は、このままにしておきます。 tv4.validateには、さらに2つのブール値パラメータ:checkRecursivebanUnkownPropertiesがあります。

特に、JSON応答にスキーマで定義されていない属性が含まれていると、最後のエラーを見つけることができます。

Reference

関連する問題