如何使用Hamcrest声明一个通用的整数列表?

use*_*374 3 java testing junit hamcrest matching

我试图匹配Hamcrest的整数列表,在线查看一些示例,但我得到运行时异常.

有人可以告诉我什么是正确的语法?

List<Integer> numbers = Arrays.asList( 1, 2, 3, 4, 5 );
assertThat((List<Object>) numbers, hasItem(hasProperty("value", is(1))));
assertThat((List<Object>) numbers, hasItem(hasProperty("value", is(2))));
assertThat((List<Object>) numbers, hasItem(hasProperty("value", is(3))));
assertThat((List<Object>) numbers, hasItem(hasProperty("value", is(4))));
assertThat((List<Object>) numbers, hasItem(hasProperty("value", is(5))));
Run Code Online (Sandbox Code Playgroud)

谢谢

Chr*_*ter 6

如果列表项的顺序无关紧要:

assertThat(numbers, hasItems(1, 2, 3, 4, 5));
Run Code Online (Sandbox Code Playgroud)

如果是这样的话:

assertThat(numbers, is(equalTo(Arrays.asList(1, 2, 3, 4, 5))));
Run Code Online (Sandbox Code Playgroud)

如果集合不应包含其他元素,那么还要检查大小:

assertThat(numbers, hasSize(5));
Run Code Online (Sandbox Code Playgroud)