matchesJsonSchemaInClasspath即使输入和输出完全不同也不起作用

时间:2017-08-19 14:31:51

标签: rest-assured web-api-testing rest-assured-jsonpath

我一直在尝试使用matchesJsonSchemaInClasspath方法来根据预定义的JSON验证我的API,但即使我是JSON格式,测试用例也会继续传递,不知道我在这里做错了什么。或者这是对此的限制。

这是我的一段代码。

@Test
public void test(){
    given().get("http://jsonplaceholder.typicode.com/posts/1").then()
            .assertThat().body(matchesJsonSchemaInClasspath("postpaidAccCard.json"))
    .log().all();
}

和我在" postpaidAccCard.json"中的静态数据是: -

{   "时间":" 03:53:25 AM",   " milliseconds_since_epoch":1362196405309,   " date":" 03-02-2013" }

如果有人可以帮我解决这个问题,那么测试仍然通过。

1 个答案:

答案 0 :(得分:0)

matchesJsonSchemaInClasspath是一种将 JSON模式(不是纯JSON)与提供的API响应(JSON)进行比较的方法。

用于创建API响应的JSON模式:

  1. 转到https://jsonschema.net/home

  2. 在左侧窗口中粘贴API响应,然后单击“提交”按钮。

  3. 您的JSON模式文件将显示在右侧窗口中。

  4. 将JSON模式复制并粘贴到postpaidAccCard.json文件中,然后重新运行测试。