我正在尝试验证Json对象。我使用https://code.google.com/p/rest-assured/wiki/Downloads?tm=2,
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"));
}
}
greeter-schema.json:http://cs606926.vk.me/v606926718/15603/0Kauo1bTDi8.jpg
即使JsonString不等于此“{\” isSuccess \“:false}”,我也总是可以得到好的结果。
例如,当JsonString =“{\” isSuccess \“:false},{\” isFalse \“:true}”或“{\” isSuccess \“:false},testetstets”时,我得到了确定的结果
最佳答案
使用RestAssured进行架构验证仅断言该值在那里。要针对某个值进行断言,必须确切表示要获取该值的名称(在本例中为isSuccess)。然后针对此派生值进行验证:
assertThat()。body(“isSuccess”,equalTo(false));
实际上,此功能是RestAssured要做的,此处有很多信息:
https://github.com/jayway/rest-assured/wiki/Usage#json-using-jsonpath