2017-12-28 54 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 위에서 언급 한 응답 본문은 우체부 출력 @DannyDainton –

답변

2

tv4에 대한 우체부의 GitHub의 계정에 open issues 많이 있습니다 기준 치수.

SO here에 대한 비슷한 질문이 있습니다. jsonData이 (가) 귀하의 스키마와 다를 수 있습니까?

이것은 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에는 checkRecursivebanUnkownProperties이라는 두 개의 추가 부울 매개 변수가 있습니다.

특히 마지막에 JSON 응답에 스키마에 정의되지 않은 속성이 포함되어있을 때 오류를 찾는 데 도움이 될 수 있습니다. 우리가에 대해 검증 무엇을 볼 수 있도록

Reference