我有一个Json,其中对于每个"optionalPassengerSeqIds"DTO,它将值显示为[]。其中有4个,所以当我对此进行简单的log.info时,它会输出:
[[[], [], [], []]]
现在我想做一个简单的断言,检查这个DTO的每个值。首先我为[]创建变量:
def optionalPassengerSeqIds = []
然后,我将"optionalPassengerSeqIds"的json响应变平,如下所示:
def jsonOptionalPassengerSeqIds = json.groups.options.optionalPassengerSeqIds.flatten()
最后,我将做一个断言,通过使用collect函数检查json响应的每个值是否与"optionalPassengerSeqIds"DTO匹配。
assert jsonOptionalPassengerSeqIds.collect{it == optionalPassengerSeqIds}
问题是我收到一个错误,上面写着:
assert jsonOptionalPassengerSeqIds.collect{it == optionalPassengerSeqIds} | | [] []
断言应该通过,但我一定在代码中做错了什么。我能问一下我的方法有什么问题吗?
如果您想检查所有子数组是否为空:
def resp=[[[], [], [], []]]
assert resp.flatten().size()==0
或者检查您是否只有有效的值
def resp=[[[1,2],[2,3],[],[]]]
def valid=[2,1,3,4] //all valid values here
def invalid = resp.flatten()-valid
assert invalid.size()==0