Given that:
int[] a = {1, 2, 3, 4};
int[] b = {1, 2, 3, 4, 5};
How to asser that "a" is a subset of "b" using hamcrest matchers?
The following works
assertThat(Arrays.asList(b), hasItems(a));
But since I am creating "a" from "b", I would prefer to apply the asserts on "a" as the value. Something like
assertThat(a, isSubsetOf(b));
Additionally it is preferable to avoid converting the array to a list.
You can use a combination of the
Every
andIsIn
matcher:This does check if every item of
a
is contained inb
. Make surea
andb
are of typeInteger[]
otherwise you might get unexpected results.If you are using an older version of hamcrest (for example 1.3) you can use the following:
In the latest version
isIn
is deprecated in favor ofin
.