gpt4 book ai didi

java - hamcrest:如何匹配数组是另一个数组的子集?

转载 作者:太空狗 更新时间:2023-10-29 22:52:43 26 4
gpt4 key购买 nike

鉴于:

int[] a = {1, 2, 3, 4};
int[] b = {1, 2, 3, 4, 5};

如何使用 hamcrest 匹配器断言“a”是“b”的子集?

以下作品

assertThat(Arrays.asList(b), hasItems(a));

但由于我是从“b”创建“a”,我更愿意将断言应用于“a”作为值。有点像

assertThat(a, isSubsetOf(b));

此外,最好避免将数组转换为列表。

最佳答案

您可以使用 Every 的组合和 IsIn匹配器:

assertThat(Arrays.asList(a), everyItem(in(b)));

这会检查 a 中的每一项是否都包含在 b 中。确保 abInteger[] 类型,否则您可能会得到意想不到的结果。

如果您使用的是旧版本的 hamcrest(例如 1.3),您可以使用以下命令:

assertThat(Arrays.asList(a), everyItem(isIn(b)));

在最新版本isIn is deprecated in favor of in .

关于java - hamcrest:如何匹配数组是另一个数组的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27099405/

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