[Первый вариант]: вы можете написать свой собственный Matcher. Нечто подобное (оговорке: это просто пример кода, он не проверяется и может быть не идеально):
@Test
public void theArrayIsInDescendingOrder() throws Exception
{
List<Integer> orderedList = new ArrayList<Integer>();
orderedList.add(10);
orderedList.add(5);
orderedList.add(1);
assertThat(orderedList, isInDescendingOrdering());
}
private Matcher<? super List<Integer>> isInDescendingOrdering()
{
return new TypeSafeMatcher<List<Integer>>()
{
@Override
public void describeTo (Description description)
{
description.appendText("describe the error has you like more");
}
@Override
protected boolean matchesSafely (List<Integer> item)
{
for(int i = 0 ; i < item.size() -1; i++) {
if(item.get(i) <= item.get(i+1)) return false;
}
return true;
}
};
}
Этот пример с Integer
с, но вы можете сделать это с Date
s легко.
[Второй вариант], на основании ссылки на contains
под вопрос OP: вы можете создать второй список, приказав оригинал, чем при использовании assertThat(origin, contains(ordered))
. Таким образом, возможная ошибка более точно описана, поскольку, если элемент не находится в ожидаемом порядке, это будет указано. Например, этот код
@Test
public void testName() throws Exception
{
List<Integer> actual = new ArrayList<Integer>();
actual.add(1);
actual.add(5);
actual.add(3);
List<Integer> expected = new ArrayList<Integer>(actual);
Collections.sort(expected);
assertThat(actual, contains(expected.toArray()));
}
будет генерировать описание
java.lang.AssertionError:
Expected: iterable containing [<1>, <3>, <5>]
but: item 1: was <5>
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:865)
at org.junit.Assert.assertThat(Assert.java:832)
...
Обеспечить некоторый код братан :) вы можете получить помощь быстро –
я не предоставлять какой-либо код, потому что я думал, что я не должен, так как мой вопрос о какой-либо список (коллекция), что содержит элемент, и я хочу сравнить элемент из списка со следующим в том же списке. – ojciecmatki