我有一个像这样的回复主体
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")));
有什么想法吗?
答案 0 :(得分:0)
findall返回一个Array数组,其中包含一个AA元素(这就是为什么你有[[AAaa]]而不是[AAaa]。 你必须展平或提取一个级别的数组来解决我认为的问题。