使用collect和flatten断言会导致错误(groovy)



我有一个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

最新更新