gpt4 book ai didi

groovy - 在 Spock 中断言 'containsAll' 时显示更好的差异

转载 作者:行者123 更新时间:2023-12-04 23:16:50 25 4
gpt4 key购买 nike

我需要断言一个集合包含来自另一个集合的所有元素。

以下测试应该失败,因为第一个集合不包含 7从第二个:

def first = [6, 1, 5, 2, 4, 3]
def second = [3, 4, 2, 5, 7, 6]
expect:
first.containsAll(second)

但是,测试失败根本不可读。不清楚只是 7不见了:
left.containsAll(right)
| | |
| false [3, 4, 2, 5, 7, 6]
[6, 1, 5, 2, 4, 3]

AssertJ 处理得更好:
java.lang.AssertionError: 
Expecting:
<[6, 1, 5, 2, 4, 3]>
to contain:
<[3, 4, 2, 5, 7, 6]>
but could not find:
<[7]>

什么样的断言在 Spock 中是惯用的 更好的失败消息 containsAll ?

最佳答案

我想你可以四处走走,做一些类似 (right - left).isEmpty() 的事情。它应该打印出在右边但不在左边的元素。

这有点像hacky方式,但实际上我能想出的任何东西

关于groovy - 在 Spock 中断言 'containsAll' 时显示更好的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38912559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com