2014-04-21 3 views
3

Json 객체의 유효성을 검사하려고합니다. http://cs606926.vk.me/v606926718/15603/0Kauo1bTDi8.jpgREST를 사용하는 JSON 유효성 확인이

나는 JsonString이 "{\" "거짓 isSuccess \} '같지 않은 매번 경우에도 확인 결과이 : 나는

import static com.jayway.restassured.module.jsv.JsonSchemaValidator.matchesJsonSchemaInClasspath; 
import static org.hamcrest.MatcherAssert.assertThat; 

import org.junit.Test; 

public class testClass { 


    @Test public void 
    validates_schema_in_classpath() { 
     // Given 
     String JsonString = "{\"isSuccess\":false}";// Greeting response 

     // Then 
     assertThat(JsonString, matchesJsonSchemaInClasspath("greeter-schema.json")); 
    } 
} 

의 인사 - schema.json는 https://code.google.com/p/rest-assured/wiki/Downloads?tm=2 사용합니다.

예를 들어 JsonString = "{\"isSuccess \ ": false}, {\"isFalse \ ": true}"또는 "{\"isSuccess \ ": false}, testetstets"

+0

단어 : 질문에 코드와 스키마를 붙여 대신 외부 자원 – soulcheck

+0

I에 연결 스키마에는 많은 URL이 포함되어 있습니다. – user3510509

답변

1

JSON 스키마는 "isSuccess"속성이 있는지를 확인하는 것이지 true 또는 false 여야 만합니다. json 스키마에서도이 작업을 수행 할 수 있지만 마음에 들지는 않습니다. 당신은 아마 그것을 위해 google을 http://json-schema.org 체크 아웃 할 수 있습니다.

+0

어떻게 속성 유형을 사용할 수 있는지 알지만 JSON 객체의 내용을 확인해야합니다. 내 말은, JSONobject에서 추가 속성이 없는지 확인해야하며, "additionalProperties"로 완료했습니다. false. 하지만 다음 문제가 있다는 것을 알아야합니다. 그 속성이 배열에 있는지 확인하는 방법은 무엇입니까? "필수": 사실은 멍청하지 않습니다. 배열이 비어 있어도 매번 테스트를 할 수 있습니다. – user3510509

+0

내가 제공 한 사이트에서 웹 페이지를 살펴 보시지 않겠습니까? 이 문서는 http://json-schema.org/latest/json-schema-validation.html에서 볼 수 있습니다. 배열에 대한 정보는 5.3 절을 참조하십시오. – Johan

2

RestAssured를 사용한 스키마 유효성 검증은 값이 있다고 주장합니다. 특정 값에 대해 주장하려면 값을 얻기 위해 찾고있는 이름 (이 경우 isSuccess)을 정확히 나타내야합니다. 그런 다음이 파생 값에 대해 유효성을 검사합니다.

assertThat(). body ("isSuccess", equalTo (false));

이 기능은 어떻게 지어진 RestAssured하고, 여기에 정보의 많음이 무엇인지 실제로 : 조언 https://github.com/jayway/rest-assured/wiki/Usage#json-using-jsonpath