当前位置: 首页 > 知识库问答 >
问题:

如何断言JSON 2D数组使用RestAsaud?

卢志业
2023-03-14

使用RestAssured,我在响应正文中的2DString数组上进行断言。我将JSON响应为:

{
    "status": {
        "code": "00",
        "message": "SUCCESS",
        "timestamp": "2021-06-14T11:25:34Z"
    },
    "data": {
        "data": [
            [
                "elementZero",
                "elementOne",
                "elementTwo"
            ]
        ]
    }
}

我的代码如下

    given()
            .auth().oauth2(token)
            .when()
            .pathParam("orderId", orderId)
            .get("/getScreeningsForOrder/{orderId}")
            .then()
            .statusCode(200)
            .contentType(ContentType.JSON)
            .assertThat()
            .body("data.data[0]", arrayContainingInAnyOrder("elementZero", "elementOne", "elementTwo"))
            .body("status.code", equalTo("00"))
            .body("status.message", equalTo("SUCCESS"))
            .body("status.timestamp", Matchers.startsWith(expectedTimestamp_yyyyMMdd))
            .extract()
            .response();

我得到以下错误:

预期:[“elementZero”,“elementOne”,“elementTwo”],任何顺序
实际:

如何断言data.data以确保它包含一个与我的数组匹配的元素?

共有1个答案

王泓
2023-03-14

试试这些- "data.data[0][0]"或< code>"data.data[0]。[0]"

 类似资料:
  • 我试着 我在调试时获得和是。 如何在使用时断言大于条件

  • 我正在对Java8 lambdas使用AssertJ方法,并将一些字段映射到BigDecimal,然后断言生成的数组。但是我需要使用来比较BigDecimal,而不是使用(正因为如此)。我该怎么做? 示例: 编辑:我正在寻找一种流畅的方法来实现这一点,因为我当然可以将其拆分为多个不同的断言,并以这种方式进行比较,或者将所有内容放在一个巨大的

  • 我正在尝试使用谷歌办公套件设置SAML。但是我得到了这个错误 我已经配置断言应该在我的SP中签名。我可以在其他IDP(如onelogin、okta)中看到签署响应断言的选项。该配置适用于其他IDP,但看不到在谷歌办公套件SAML中唱响应断言的选项。 在Gsuite中,我只能看到签名响应的选项,而不能看到断言。 如何正确设置此设置? SP元数据如下所示:

  • 我在测试中有一段代码,使用Hamcrest 2.2检查结果列表是否包含某些属性: 当是一个普通的类时,这个工作非常好。但是在我将它更改为之后,Hamcrest的抱怨没有名为的属性: 是否有其他匹配器可以用来实现与之前相同的匹配?或者其他解决方法可以用来让它与记录一起工作?

  • 尝试将我们组织的web应用程序与Okta的SSO集成。 除了我找不到一种方法来传递用户在断言SAML中所属的本机Okta组之外,一切都很顺利(在“编辑SAML集成”表单中没有这样的选项)。 知道怎么做吗?

  • 问题内容: 我有这些值来自测试 我尝试 我得到了,关于调试是。 我怎样才能断言超越使用条件 问题答案: 只是您的操作方式。还有一个过载,如果发生故障,消息是;如果要打印某某某物的大小不超过某某某物的大小,则可以使用它。 您也可以添加依赖项以使用匹配器。参见https://code.google.com/p/hamcrest/wiki/Tutorial: 这给出了类似的错误: