【发布时间】:2013-03-25 06:44:26
【问题描述】:
如果给定的集合包含给定顺序的给定项目,如何使用 Hamcrest 检查?我试过hasItems,但它只是忽略了订单。
List<String> list = Arrays.asList("foo", "bar", "boo");
assertThat(list, hasItems("foo", "boo"));
//I want this to fail, because the order is different than in "list"
assertThat(list, hasItems("boo", "foo"));
【问题讨论】:
-
考虑更改接受的答案。通常,当我们搜索匹配器时,我们会优先考虑那些已经在 API 中的匹配器,而将自定义匹配器留给不可避免的情况。
-
接受的答案不回答问题。该问题要求匹配器仅检查预期项目是否按给定顺序包含在实际列表中,而不是所有实际项目。
Matchers.contains方法检查列表是否包含预期的项目。 -
在这个问题中解释了其他匹配器stackoverflow.com/a/44030511/1195507
标签: java collections hamcrest