在hamcrest(1.3.RC2,没有JUnit依赖项)
我没有使用iterableWithSize().
我有一个({1}} {扩展名}参数化Iterator
就像这样
Content
EndResult<Content> contents = contentRepository.findAllByPropertyValue("title", "*content*");
的位置
EndResult
package org.springframework.data.neo4j.conversion;
public interface EndResult<R> extends Iterable<R> {...}
是我的Pojo。
现在,我认为这会奏效
Content
但它给了我错误: 方法断言(T,Matcher) 在Assert类型中不适用 对于论点 (EndResult&lt; Content&gt;,Matcher&lt; Iterable&lt; Object&gt;&gt;)
我也试过这些失败:
assertThat(contents, iterableWithSize(1));
assertThat(contents, iterableWithSize(equalTo(1));
这些是我的进口商品:
import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.collection.IsCollectionWithSize.hasSize; import static org.hamcrest.collection.IsIterableWithSize.iterableWithSize; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import org.hamcrest.collection.IsIterableWithSize;
集合的hasSize按预期工作,但对于迭代器,我甚至找不到一个有效的例子......
答案 0 :(得分:13)
应该只是
assertThat(contents, IsIterableWithSize.<Content>iterableWithSize(1));
iterableWithSize
在Iterable
的组件类型上输入,而不是迭代本身的具体类型。