我尝试验证json响应(就像下面示例中的网站一样),但是我无法验证可选元素。我只能用'validate'验证必选元素,因为如果json-path失败,它就已经算作失败了。
有人能给我一个如何验证值的提示,如果并且仅当该元素存在时?如果它不存在(可选),那也很好...
必须验证的示例: 该描述是可选的,但如果已设置,则长度不能超过30个字符。
LEFT(INDIRECT(A2&"!$E$2:$E$6"))=7
答案 0 :(得分:0)
也许这篇文章可以为您提供帮助,Matchers.
的使用
https://stackoverflow.com/a/50817190/11770752
首先,您可以尝试Matchers.hasValue
,如果可以,请使用Matchers.hasSize
进行检查。
否则,我在.jsonPath(String jsonPathExpression, Object controlValue)
之后找到了.messageType(MessageType.JSON)
,但我不知道它是否检查可选项甚至验证Json值。
编辑:在浏览文档时,在Citrus中有“验证匹配器”选项。 http://citrusframework.org/reference/html/index.html#validation-matcher
将"${todoDescription}"
替换为"@matches('\w{30}')@"
,它应该可以工作。