鉴于:
@H_404_2@int[] a = {1,2,3,4};
int[] b = {1,4,5};
如何断言“a”是使用hamcrest匹配器的“b”的子集?
以下作品
@H_404_2@assertThat(Arrays.asList(b),hasItems(a));但是,由于我从“b”创建了“a”,所以我宁愿将“a”作为该值.
就像是
另外,最好避免将数组转换成列表.
解决方法
您可以使用
Every
和
IsIn
匹配器的组合:
@H_404_2@assertThat(Arrays.asList(a),everyItem(isIn(b)));
这样会检查是否每个项目都包含在b中.确保a和b的类型为整数[],否则可能会产生意想不到的结果.
在最新版本中,将isIn替换为,自第一个has been deprecated起.