通用断言(ArrayList,hasItems(InstanceOfSomeInterface))不起作用

时间:2011-09-14 10:00:53

标签: java generics junit hamcrest

我想使用Hamcrest的hasItems和一个ArrayList<? extends SomeInterface>的“实际”集合 在

assertThat(ArrayList<? extends SomeInterface>, hasItems(InstanceOfSomeInterface))

编译器说:

  

assertThat(T, Matcher<T>)类型中的方法Assert不适用于参数(ArrayList<capture#9-of ? extends MyInterface>, Matcher<Iterable<MyInterface>>)

出了什么问题?我该怎么办(我真的想在这里使用Hamcrest)?

1 个答案:

答案 0 :(得分:4)

ArrayList<SomeInterface> newList = new ArrayList<SomeInterface>();
newList.addAll(origList);
assertThat(newList, hasItems(InstanceOfSomeInterface));

不幸的是,Assert.assert没有使用进行编码?超级?扩展以允许您描述的内容。