我正在尝试使用Katalon来实现一些use服务自动化。我一直在学习如何使用jsonslurper解析返回的Json。如指南所述,https://docs.katalon.com/katalon-studio/tutorials/parse_json_responses.html一切都很好。我想看看是否可以使用junit断言,特别是assertEquals()来获得更好的错误文本。既然我们有这个
import groovy.json.JsonSlurper
String jsonString = {"menu": {
"id": "file",
"tools": {
"actions": [
{"id": "new", "title": "New File"},
{"id": "open", "title": "Open File"},
{"id": "close", "title": "Close File"}
],
"errors": []
}}}
JsonSlurper slurper = new JsonSlurper()
Map parsedJson = slurper.parseText(jsonString)
def array1 = parsedJson.menu.tools.actions
String onlickValue1 = ""
for(def member : array1) {
assertEquals("Open File", member.title)
break
}我遇到的问题是,当比较它遇到的第一个title元素(即"New“)时,我的断言会抛出一个错误。
我打算循环遍历数组中的所有元素,并针对所有元素断言我的预期值。如果我的期望值不存在,那我就失败了。
我觉得我遗漏了一些东西,因为我们过去在java上做过类似的事情,但我在这里看不到。
发布于 2019-06-10 19:08:47
所以我发现问题是我缺乏经验/无知。当我在网上寻找解决方案时,我完全不明白我要实现的代码是做什么的。我使用一个for.each循环来根据我的期望值断言数组中的元素。当然,对于每一个不符合我预期值的元素,这都是错误的。因此,我添加了一个if语句,如下所示:
String expectedValue = ''
for(def member : array1) {
if (member.title=="Open File")
{
expectedValue = member.title
}
break
}
assertEquals("Open File", member.title)另外,我发现的一种更简单的方法是以下面的方式使用assertJ ( assertThat(member).contains("Open File") )
我知道有更好的解决方案来实现我想要做的事情。但就这个问题而言,我认为它已经解决了。
https://stackoverflow.com/questions/56401360
复制相似问题