Rest Assured Body处理ArrayList

时间:2016-06-07 10:52:06

标签: rest-assured

我有一个像这样的回复主体

DECLARE

  z_value NUMBER      := -1;


coco number;
BEGIN
    BEGIN
coco:=2310458;
          dbms_output.put_line (' coco= ' ||  coco );
         SELECT oa.myvalue
           INTO z_value
           FROM    schema2.table2 oa
                INNER JOIN
                   schema1.table1 ed
                ON ed.coco = oa.coco
          WHERE ed.coco =  coco
         ;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
      dbms_output.put_line ('NO_DATA_FOUND');
    WHEN OTHERS THEN
      dbms_output.put_line ('Exception de traitement ' || SQLERRM);
    END;

现在我可以使用以下代码和测试通过。

enter code here

{
"applicationName": "Service MyService",
"someData": [
    {
        "name": "check1",
        "props": [
            "AAaa"
        ]
    },
    {
        "name": "check2",
        "props": [
            "BBbb",
            "CCcc"
        ]
    }
]
}

但是,如果我然后尝试检查props字段中的值,那么我认为它失败了,因为返回了一个ArrayList并且匹配器正在检查String。

        given().log().all()
        .accept(JSON).expect().statusCode(SC_OK)
    .when().log().all()
        .get(contextPath + "/test")
    .then().log().all()
        .body("someData.name",
            IsCollectionWithSize.hasSize(2))
        .body("someData.name",
            allOf(hasItems("check1", "check2")))
        .body("someData.findAll {it.name == 'check1'}.props", 
            IsCollectionWithSize.hasSize(1))
        .body("healthReports.findAll {it.name == 'check2'}.props", 
            IsCollectionWithSize.hasSize(2)));

我不确定如何从findAll ...道具我可以检查ArrayList的内容。

显示的错误是:

        given().log().all()
        .accept(JSON).expect().statusCode(SC_OK)
    .when().log().all()
        .get(contextPath + "/test")
    .then().log().all()
        .body("someData.name",
            IsCollectionWithSize.hasSize(2))
        .body("healthReports.findAll {it.name == 'check1'}.props", 
                    IsCollectionContaining.hasItems(startsWith("AA")));

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

findall返回一个Array数组,其中包含一个AA元素(这就是为什么你有[[AAaa]]而不是[AAaa]。 你必须展平或提取一个级别的数组来解决我认为的问题。