我到处找了,但还没有找到一个简单而有效的方法。
任务:我是一个qa,我试图验证特定的键在mongodb文档中是否具有预期的值。如果不是,则Assert为false。
我的问题是:我的文档包含数组和文档。在ui中使用点符号(例如item.fruit.apples.type.macintosh)很容易遍历树。但在java中,我唯一能做到这一点的方法是显式地告诉它item、fruit、apples、type还是macintosh是文档还是数组。例如:
{
"item": {
"fruit",
"apples"[
"type": "macintosh",
]
}
}
Document fruit = doc.getEmbedded(List.of(item, fruit), Document.class);
List<Document> apples = (List<Document>) fruit.get(apples);
for (Document apple : apples) {
actualValue = apple.getString("type");
}
if(!actualValue.equals(expectedValue)) {
Assert.fail();
}
如果开发人员决定更改或删除任何密钥,我的验证将中断。难道没有更简单的方法吗?
1条答案
按热度按时间jq6vz3qz1#
在其他stackoverflow帖子的帮助下,我找到了解决方案:
这是我用点表示法迭代键和值的函数: