Karate框架能否在同一行使用两次match each实现多断言?
Karate中合并列表元素多字段非空断言的实现方法
可以实现,你之前的写法错误在于把两个独立的each断言用&&直接拼接,不符合Karate的语法规则。正确的做法是针对列表中的每一个对象,同时校验id和name两个字段的非空性,具体写法有两种:
方法一:使用Karate内置断言关键字
* match each obj == { id: '#notempty', name: '#notempty' }
#notempty是Karate提供的内置断言,会自动校验字段不为空字符串、null或undefined。
方法二:直接使用不等于空字符串的表达式
如果你想严格校验字段不等于空字符串,也可以这么写:
* match each obj[*] == { id: '## != ""', name: '## != ""' }
这里的##表示要执行后面的JavaScript表达式进行断言。
这两种写法都能一次性完成对列表中所有对象的id和name字段非空校验,效果和你原来的两条断言完全一致。
内容的提问来源于stack exchange,提问作者Snehith tammewar
相关产品推荐
相关产品推荐

