В Hamcrest (1.3.RC2, без зависимостей JUnit) Я уверен, не используя iterableWithSize().
Hamcrest дженерики ад # 2: iterableWithSize дает errror «не применяется для аргументов»
У меня есть (продолжение) Iterator
параметризованных с Content
как этот EndResult<Content> contents = contentRepository.findAllByPropertyValue("title", "*content*");
где EndResult
является package org.springframework.data.neo4j.conversion;
public interface EndResult<R> extends Iterable<R> {...}
и Content
это мой Pojo.
Теперь, я бы думать, что это будет работать assertThat(contents, iterableWithSize(1));
, но он дает мне ошибку: метод assertThat (T, Сличитель) в типе Утверждай не применяется для аргументов (EndResult < Content>, Сличитель < < Iterable Object >>)
Я также попробовал эти неудачи:
assertThat(contents, iterableWithSize(equalTo(1));
assertThat(contents, IsIterableWithSize.<EndResult<Content>>.iterableWithSize(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 для коллекций работ, как и ожидалось, но для итераторов я могу даже найти рабочий пример ...
Спасибо Марку - действительно компилировать время его хорошо, но когда тест запускается я получаю java.lang.AssertionError: Ожидаемое: итератор с размером <2> получил: –
@Agelos: Тогда, я думаю, вам лучше исправить либо ваш код, либо ваш тест! Я отвечал на вопрос Хамкреста, у вас есть неправильное предположение или какой-то код нарушен. Извините, но я не знаю достаточно о Весне, чтобы ответить на новый вопрос. –
Но так как EndResult расширяет Iterable , что еще может быть неправильным в тривиальном {next(); i ++} коде? –