【问题标题】:Asserting Rest Assured response with Json Unit使用 Json 单元断言 Rest Assured 响应
【发布时间】:2017-08-25 08:17:32
【问题描述】:

我目前正在使用放心和 Json-unit 来针对请求的放心响应断言本地 json 文件。

我目前有一个带有基本 uri 的课前方法。

我不知道如何做出这个断言。我正在为 json-unit 文档而苦苦挣扎。我需要先输入文件吗?

    @Test
    public void ApiaryTest1() throws Exception {

        when()

                .get("/test")
                .then()
                .statusCode(200);

        // compares two JSON documents
        assertJsonEquals("expected/test.json", "http://apiary/test");
        }

【问题讨论】:

  • “我在挣扎”是什么意思?
  • 所以我把它叫做养蜂场。我收到了 200 条回复。我现在想使用这个 json-unit 来检查预期的文件和其余的响应。我怎么做?因为 json-unit 文档在我看来不是特别清楚。

标签: java json rest-assured


【解决方案1】:

你需要:

  • 使用 JsonUnit API 读入资源
  • 将响应从 rest 提取到一个变量
  • 断言你已经在做

例子:

Response response = when().get("<url>");
        response
                .then()
                .statusCode(200);

        // compares two JSON documents
        assertJsonEquals(resource("resource-inside-resources-folder.json"), response.asString());

【讨论】:

  • 嗨,这只是给了我这个错误,但是谢谢你的回复。
  • java.lang.NoSuchMethodError: org.json.JSONTokener.(Ljava/io/Reader;)V
  • objc[45956]:类 JavaLaunchHelper 在 /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/java 和 /Library/Java/JavaVirtualMachines/jdk1 中实现。 8.0_101.jdk/Contents/Home/jre/lib/libinstrument.dylib。将使用两者之一。哪一个是未定义的。 java.lang.NoSuchMethodError: org.json.JSONTokener.(Ljava/io/Reader;)V
  • 你用的是什么序列化器?杰克逊、gson 还是其他人?
  • 解决了我的 POM 中没有 Jackson 依赖项。我的错。
【解决方案2】:

对于放心的 Kotlin DSL:

        When {
            get("http://nowjidev1vm01.ath.bskyb.com/calskyplussearch/health")
        } Then {
            statusCode(200)
        } Extract {
            assertJsonEquals(expectedBody, response().asString())
        }

【讨论】:

    猜你喜欢
    • 2017-10-23
    • 2017-08-14
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2019-10-24
    • 2017-07-30
    相关资源
    最近更新 更多